Javascript 滚动容器更改滚动较大容器的速度
可以改进包含大量对象的列表的滚动Javascript 滚动容器更改滚动较大容器的速度,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,可以改进包含大量对象的列表的滚动 <ul> <li>text1</li> <li>text2</li> <li>text3</li> <li>text4</li> <li>...</li> . . . <li>text1000</li> </ul> 文本1 文本2 文本3 文本4 . .
<ul>
<li>text1</li>
<li>text2</li>
<li>text3</li>
<li>text4</li>
<li>...</li>
.
.
.
<li>text1000</li>
</ul>
- 文本1
- 文本2
- 文本3
- 文本4
.
.
.
- 文本1000
每当我滚动容器中90%的元素时,我都会发出一个js调用,将更多的结果加载到容器中,并将剩余的元素添加到ul中
我可以根据结果的数量修改滚动时的滚动速度吗
p、 我没有在这种情况下尝试过的任何代码。我不知道怎么做。这是我解决问题的最后一次尝试。p、 s.2我想要一个没有jquery或jqm之外的任何额外库的解决方案 编辑:
通过修改滚动速度,我的意思是,如果有许多对象,则将滚动速度更改为更快,否则将变慢您可以使用这种片段: {使用滚动条更改超时延迟以减少无聊效果}
(函数(){
变量$ul=$('ul');
对于(变量i=1;i<1001;i++)
$ul.append(“测试:”+i+“ ”);
var lastScrollTop=0,
圣,
方向;
函数getDirection(){
st=window.pageYOffset;
如果(st>lastScrollTop){
方向=“向下”;
}否则{
方向=“向上”;
}
lastScrollTop=st;
返回方向;
}
var scrolling=函数(){
var$window=$(此);
$window.off('scroll');
变量增量=$ul.height()/10,
scroll=$window.scrollTop();
如果(getDirection()=“down”)$window.scrollTop(增量+滚动);
else$window.scrollTop(滚动-增量);
log($(window.scrollTop());
lastScrollTop=this.pageYOffset;
setTimeout(函数(){
$window.on('scroll',滚动);
}, 0);
};
$(窗口)。打开('滚动',滚动);
})();
您可以使用这种代码段:
{使用滚动条更改超时延迟以减少无聊效果}
(函数(){
变量$ul=$('ul');
对于(变量i=1;i<1001;i++)
$ul.append(“测试:”+i+“ ”);
var lastScrollTop=0,
圣,
方向;
函数getDirection(){
st=window.pageYOffset;
如果(st>lastScrollTop){
方向=“向下”;
}否则{
方向=“向上”;
}
lastScrollTop=st;
返回方向;
}
var scrolling=函数(){
var$window=$(此);
$window.off('scroll');
变量增量=$ul.height()/10,
scroll=$window.scrollTop();
如果(getDirection()=“down”)$window.scrollTop(增量+滚动);
else$window.scrollTop(滚动-增量);
log($(window.scrollTop());
lastScrollTop=this.pageYOffset;
setTimeout(函数(){
$window.on('scroll',滚动);
}, 0);
};
$(窗口)。打开('滚动',滚动);
})();
modify the scroll speed(修改滚动速度)是什么意思?即使是facebook也有这个问题。我认为减慢或加快滚动速度会让用户感到沮丧。。。这就是我的想法。是的,但这是我的要求:P这是什么意思“修改滚动速度”?即使是facebook也有这个问题。我认为减慢或加快滚动速度会让用户感到沮丧。。。是的,但这是我的要求:P
(function () {
var $ul = $('ul');
for (var i = 1; i < 1001; i++)
$ul.append('<li>test::' + i + '</li>');
var lastScrollTop = 0,
st,
direction;
function getDirection() {
st = window.pageYOffset;
if (st > lastScrollTop) {
direction = "down";
} else {
direction = "up";
}
lastScrollTop = st;
return direction;
}
var scrolling = function () {
var $window = $(this);
$window.off('scroll');
var delta = $ul.height() / 10,
scroll = $window.scrollTop();
if (getDirection() === "down") $window.scrollTop(delta + scroll);
else $window.scrollTop(scroll - delta);
console.log($(window).scrollTop());
lastScrollTop = this.pageYOffset;
setTimeout(function () {
$window.on('scroll', scrolling);
}, 0);
};
$(window).on('scroll', scrolling);
})();