- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经设法让这个滚动功能发挥作用,当你停止滚动时,它会滚动到 div 的顶部,唯一的问题是,它根本不顺利,它只是不停地跳来跳去,不效果不太好。
这是我的js:
$(document).ready(function(){
Resize();
});
//Every resize of window
$(window).resize(function() {
Resize();
});
//Dynamically assign height
function Resize() {
// Handler for .ready() called.
var windowHeight = $(window).height() + 'px';
$('.fill-browser').css('height', windowHeight);
}
$(function(){
var _top = $(window).scrollTop();
var individualDivHeight = $(".fill-browser").height();
$(window).scroll(function(){
var _cur_top = $(window).scrollTop();
var totalHeight = $('body').height();
var posToScroll = Math.round(_cur_top / individualDivHeight) * individualDivHeight;
$('html, body').stop().animate({scrollTop: posToScroll}, 200);
});
});
这里还有一个工作 fiddle 来演示我的意思:http://jsfiddle.net/vHAWW/2/
我希望当你停止滚动时该功能能够很快,但它一点也不流畅,似乎不明白为什么?
最佳答案
我猜测 $(window).scroll(function(){
是通过以下行递归调用的:
$('html, body').stop().animate({scrollTop: posToScroll}, 200);
您能否尝试设置一个可以禁用事件运行的标志?即:
var _top = $(window).scrollTop();
var individualDivHeight = $(".fill-browser").height();
var running = false;
$(window).scroll(function(){
if(running)
return;
running = true;
var _cur_top = $(window).scrollTop();
var totalHeight = $('body').height();
var posToScroll = Math.round(_cur_top / individualDivHeight) * individualDivHeight;
$('html, body').stop().animate({scrollTop: posToScroll}, {duration:200, complete: function(){running = false;}});
});
尽管如您所见,当我开始滚动时,它会直接运行。我建议您使用超时或类似的方法:
$(function(){
var _top = $(window).scrollTop();
var individualDivHeight = $(".fill-browser").height();
var running = false;
var timeout = null;
$(window).scroll(function(){
if(running)
return;
clearTimeout(timeout);
timeout = setTimeout(function() {
running = true;
var _cur_top = $(window).scrollTop();
var totalHeight = $('body').height();
var posToScroll = Math.round(_cur_top / individualDivHeight) * individualDivHeight;
$('html, body').stop().animate({scrollTop: posToScroll}, {duration:200, complete: function(){running = false;}});
}, 200);
});
});
JsFiddle: jsfiddle.net/HmaWW/
关于jQuery滚动功能不断跳跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14491222/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!