jquery animate运行后 自动回到顶部问题(已解决)

jquery animate运行后 自动回到顶部问题(已解决)

问题描述

使用 animatescroll.js 或者 animate() 方法来控制,页面移动到锚点位置;当页面移动到指定位置之后,会自动又回到页面顶部。

环境:手机 h5、chrome 浏览器 调试

需求:定位到有问题的人员行

原因

当页面中有其他 <a href="#">或者类似的标签时,可能会触发上述 bug

解决方法

增加对应位置的 stop(true) 方法

animatescroll.js 为例

源码中调用部分核心代码如下

...此处省略N行代码
var offset = this.offset().top;
$(opts.element).stop().animate({ scrollTop: offset - opts.padding}, opts.scrollSpeed, opts.easing);
...
    // default options
    $.fn.animatescroll.defaults = {        
        easing:"swing",
        scrollSpeed:800,
        padding:0,
        element:"html,body"
    }; 

默认是 800ms,移动到指定锚点

增加代码 800ms 后 $(opts.element).stop(true);停止动画效果

        setTimeout(function() {
            // make sure the callback is a function
            if (typeof opts.onScrollEnd == 'function') {
                // brings the scope to the callback
                opts.onScrollEnd.call(this);
                $(opts.element).stop(true);
            }
        }, opts.scrollSpeed);

当然 animatescroll.js 是增加一个 onScrollEnd的滚动后函数;我们传一个空的函数即可。
调用代码如下:

var method = function method() {
    return false;
}
...此处省略N行代码
$("#userIndex" + i).animatescroll({onScrollEnd: method, padding: 30}); //滚动到这个位置

如果不是用 animatescroll.js 直接 setTimeout('stop()',800),自己写一个停止函数即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值