【发布时间】:2015-03-16 15:11:10
【问题描述】:
我有一个 jQuery 脚本如下:
$(document).ready(function(){
$(window).scroll(function(){
if ($(this).scrollTop() > 100) {
$('#algemeen').css('position','fixed');
$('#algemeen').animate({
top: '0px',
left: '70%',
width: '10%'
}, 200);
} else {
$('#algemeen').css('position','absolute');
$('#algemeen').animate({
top: '300px',
left: '100px',
width: '200px'
}, 200);
}
});
});
如您所见,当页面向下滚动 100 像素时,我有这个 div '#algemeen' 会改变其位置。问题是,它非常滞后,当我向上滚动时,它经常停留在“向下滚动”位置。有没有更好的方法来实现我的目标?
提前致谢!
【问题讨论】:
-
尝试不使用 animate ,即
$('#algemeen').css({top: '300px', left: '100px', width: '200px'});您在每个滚动条上设置 200 毫秒的动画(因为您总是匹配这两个条件之一)。此外,在 css 中进行样式设置并让 jquery 简单地添加和删除一个类(isScrolled 等),这也将提高性能,因为 js 的工作量要少得多,而 css 正在做它最擅长的事情
标签: javascript jquery function scroll scrolltop