自我感觉jQuery中animate延迟

image.png

在做网页时,当我希望在我滑动网页到一定的高度时从上出现一个div,而我往上滑动页面时这个div就会消失,效果是希望可以从上到下慢慢显示。这个时候我选择用jQuery的animate()方法。
但是问题出现了:每一次都是往上拉到顶部了div还是不消失,好不容易消失了再往下拉到底部div都不出现;代码如下

$(window).scroll(function () {
    var scrollTop = $(this).scrollTop()
    if (scrollTop > 160) {
        $('.navbar').animate({ height: "80px" },500)
    } else {
        $('.navbar').animate({ height: "0px" },500)
    }
})

最后找到原因是因为

鼠标滚动一次就引发一次animate()方法的执行,而每次执行是需要时间的,对于我的代码是一次执行0.5s,虽然一次时间不长,但是好多好多次叠加在一起就造成了执行不同animate()方法的延时

解决方法

在animate()方法之前添加stop()函数

$('.navbar').stop().animate({ height: "80px" },500)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • jQuery 安装 把 jQuery 添加到您的网页 如需使用 jQuery,您需要下载 jQuery 库(会在下...
    Clover园阅读 349评论 0 0
  • 隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置css的display为none属性。但是通过css...
    老夫撩发少年狂阅读 1,206评论 0 2
  • //------------------------- 第一章 认识JQuery ----------------...
    米塔塔阅读 824评论 0 9
  • 通过jQuery,您可以选取(查询,query)HTML元素,并对它们执行“操作”(actions)。 jQuer...
    枇杷树8824阅读 736评论 0 3
  • 1、积极的心态 首先我们需要具备积极的心态。积极的心态就是把好的,正确的方面扩张开来,同时第一时间投入进去。一个国...
    勤录阅读 2,552评论 0 6

友情链接更多精彩内容