首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery动画不工作在IE的火狐?

jQuery动画不工作在IE的火狐?
EN

Stack Overflow用户
提问于 2014-05-13 14:57:08
回答 2查看 69关注 0票数 1

我有一个函数,我想水平滚动我的网页,我有以下功能,在Chrome中很好地工作,只有当我在FirefoxInternet Explorer中测试它时,它会出错。有人能在我的语法中看到任何显著的错误吗?

代码语言:javascript
运行
复制
/* Navigtion */
$('nav ol li a').click(function(e){
    e.preventDefault();
    $('nav').find('.active').removeClass('active'); 
    $(this).addClass('active'); 


    if( $(this).hasClass('sectionOne') ){

        scrollTo = $('.section-one').position().left;             
        $('body').animate({'scrollLeft': scrollTo}, 800);

    } else if( $(this).hasClass('sectionTwo') ){

        scrollTo = $('.section-two').position().left;             
        $('body').animate({'scrollLeft': scrollTo}, 800);

    } else if( $(this).hasClass('sectionThree') ){

        scrollTo = $('.section-three').position().left;             
        $('body').animate({'scrollLeft': scrollTo}, 800);

    } else if( $(this).hasClass('sectionFour') ){

        scrollTo = $('.section-four').position().left;             
        $('body').animate({'scrollLeft': scrollTo}, 800);

    } else if( $(this).hasClass('sectionFive') ){

        scrollTo = $('.section-five').position().left;             
        $('body').animate({'scrollLeft': scrollTo}, 800);

    } else if( $(this).hasClass('sectionSix') ){

        scrollTo = $('.section-six').position().left;             
        $('body').animate({'scrollLeft': scrollTo}, 800);

    } else if( $(this).hasClass('sectionSeven') ){

        scrollTo = $('.section-seven').position().left;             
        $('body').animate({'scrollLeft': scrollTo}, 800);

    }



});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-13 14:58:44

不同的浏览器将滚动条附加到不同的元素,您必须这样做。

代码语言:javascript
运行
复制
$('html, body').animate({'scrollLeft': scrollTo}, 800);

尝试找出一个比所有那些if / out语句更好的方法,下面是一个例子。

向锚点添加数据属性

代码语言:javascript
运行
复制
<nav>
   <ol>
      <li>
         <a data-section="section-one" ....

而且你可以消除所有的如果/其他疯狂,并做同样的两行

代码语言:javascript
运行
复制
var scrollTo = $('.' + $(this).data('section')).position().left;             
$('html, body').animate({'scrollLeft': scrollTo}, 800);
票数 4
EN

Stack Overflow用户

发布于 2014-05-13 15:01:31

尝试:

代码语言:javascript
运行
复制
$('body').animate({'scrollLeft': scrollTo}, 800);
$('html').animate({'scrollLeft': scrollTo}, 800);

一些浏览器与'html‘一起工作,一些浏览器与'body’一起工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23634766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档