jQuery 中 animate() 对 Firefox 无效

🌙
手机阅读
本文目录结构

核心: $(“body”) 的获取问题

很久没有写官网页面了;最近接一个新需求,做一个区块链的官网宣传页;

兼容主流浏览器即可;

我做的兼容到 chrome,IE7、火狐浏览器

使用 jQuery 的时候遇到一个事情;就是 animate 的时候,竟然在 animate 上无效;查找后发现是 DOM 获取的问题;记录下;

在使用 animate()做返回顶部的动画时,会出现对 Firefox 无效的情况;

开始是下面这种写法的:

    $(“body”).stop().animate({ scrollTop: targetScrollVal-100 }, 500,"swing");

这种在 IE 和 chrome 下都是没问题的;

但是这么写在火狐下是无效的;

火狐下是这么写的

    $(“html”).stop().animate({ scrollTop: targetScrollVal-100 }, 500,"swing");

两者结合后就可以了;

如下;

    var $page=$("#page-canon-index");
    var $body=$("html,body");
    var $linkWrap=$page.find("#header-link-wrap");
    var targetScrollVal;//储存需要跳转到的目标值;

    var pageUtility={
        init:function () {
            this.bind();
        },
        bind:function () {
            var self=this;
            $linkWrap.on("click",".link-item",function (e) {
                e.preventDefault();
                var indexVal=$(this).closest("li").data("index");
                self.floorSwitch(indexVal);
            });
        },
        floorSwitch:function (indexVal) {
            targetScrollVal=$page.find("#page"+indexVal)[0].offsetTop;
            $body.stop().animate({ scrollTop: targetScrollVal-100 }, 500,"swing");
        }
    };
    pageUtility.init();

这就是全部的写法;

核心代码:

    var $body=$("html,body");

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

目前重心已经放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>