如何禁用滚动直到动画完成
How to disable scrolling until animation is complete?
我正在使用此代码滚动到页面上的某个元素:
$("html, body").animate({scrollTop: $(".myDiv").offset().top}, 300);
它是有效的,但有一个问题:当用户向下滚动而脚本向上滚动时,会有一些抖动,因为有两个滚动命令同时指向不同的方向——这对我来说听起来很合乎逻辑
我检查了其他一些具有滚动功能的网站,没有抖动。那么,防止这种情况发生的诀窍是什么呢?
当您使用带滚动的animate时,这是一个jQuery错误,检测效果很好。
我研究了如何关闭滚动,发现了这个问题:如何暂时禁用滚动?
这是jsFiddle。点击后您会看到;用户无法滚动直到动画制作完成。
$('.myDiv').click(function(){
disable_scroll();
$('html, body').stop().animate({ scrollTop: 0 }, 700,function() {
enable_scroll();
});
});
编辑:感谢galambalaz btw.
一个想法-尝试挂接到滚动事件并使用http://api.jquery.com/stop/停止动画..坏主意。。
解决方案也有同样的问题-让用户滚动停止scrolltop的jquery动画?
相关文章:
- 无法在第一次单击时禁用链接,并在动画完成后重新启用
- 如何禁用可排序动画 Jquery
- 使用 CSS 禁用动画效果
- 在一定百分比上禁用引导进度条的平滑动画过渡
- 如何使用if hasClass条件禁用jQuery mouseleave事件?//悬停动画
- 如何禁用滚动直到动画完成
- 禁用D3plus宽度更改动画
- 禁用链接,直到所有动画停止,然后再次启用它们
- 满足条件时禁用动画 jQuery
- 在动画过程中禁用单击
- 在动画过程中禁用对元素的单击
- 暂时禁用鼠标滚轮,直到动画结束
- 在页面加载时禁用 CSS 动画,但每隔一段时间工作一次
- 禁用 CSS/JavaScript 动画(转换:Translate3D)
- 如何禁用引导轮播动画
- 是否可以禁用dojo蜘蛛图动画
- GWT Highcharts-禁用系列动画
- 如何在制作动画时禁用链接
- 将元素设置为不透明动画并禁用单击
- jQuery:在动画期间禁用点击