开发者社区> 问答> 正文

固定导航菜单怎么完全兼容

如题,是个老问题了,今天第一次遇到,就是一个固定的导航菜单,我知道有人要告诉我,你可以用

poistion:fixed;
这个我知道,可IE6呢不行了,还有两种方案?一种是动画运动到位置,这个不适用我的需求,因为是一个导航菜单,类似于,美丽说和聚美优品,等网站的导航。
我通过用CSS表达式,在JS里做判断,但一直报错。有没有人做过,或者给段代码,或者指点一下。

 (function ($) {
            var win = window,
                $navTop = $(".topnav"),
                $cloneTop = $navTop.clone(),
                TopValue = $navTop.offset().top;
                $navTop.after($cloneTop).css({
                    width: $navTop.width()
                    }).hide();
                $(win).bind("scroll",function () {
                var scrollTop = $(document).scrollTop(),
                scrollLeft = $(document).scrollLeft();
                if($.browser.version == 7) {
                 if(scrollTop >= TopValue) {
                   $cloneTop[0].style.position = "absolute";
                   $cloneTop[0].style.backgroundColor = "red";
                   $cloneTop[0].style.top ='expression(eval(document.documentElement.scrollTop'+100+'))';
                 }
                } else {
                    if(scrollTop >= TopValue) {
                    $cloneTop.css({
                        "position" : "fixed",
                        "top" : "0"
                        }).show();
                    } else if(scrollTop < TopValue) {
                        $cloneTop.hide();
                        $navTop.show();
                    }
                    }
                })
         })(jQuery)

代码写的恶心,请忽鄙视。

展开
收起
小旋风柴进 2016-03-24 09:04:00 1732 0
1 条回答
写回答
取消 提交回答
  • 我们不推荐使用jQuery.browser这个属性,请尝试使用功能检测来代替(见jQuery.support)。 jQuery.browser在未来的版本中可能会转移到一个jQuery插件。
    以下这个判断条件失效了,所以导致报错。

    if($.browser.msie) {
    可以用jQuery.support来做浏览器判断

    if(!jQuery.support.leadingWhitespace) {

    2019-07-17 19:11:51
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
动态、高效,蚂蚁动态卡片的内核逻辑 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载