gpt4 book ai didi

jquery - 如何让滚动条只以固定的时间间隔滚动?

转载 作者:太空狗 更新时间:2023-10-29 13:12:01 26 4
gpt4 key购买 nike

我有一个固定大小和溢出的容器 div:滚动,它充满了较小的 div,形成了一种列表。这是一个 fiddle 示例:http://jsfiddle.net/etYSC/2/

我想要的是滚动永远不会切割一个框,总是显示 3 个完整的框(在这个例子中),所以它总是滚动固定数量的像素。

我该怎么做?

我正在使用 jquery 库。

由于误导性关键字,Google 在这个问题上一直很严厉。

-- 解决方案

我能够进一步改进 kiranvj 代码,我对最终结果非常满意。

捕捉上一个 div:

var scrollTimerHandle = "";
var positionTimerHandle = "";

$("#container").scroll(function() {
var boxSize = 84;
var newScrollPosition = parseInt(this.scrollTop / boxSize) * boxSize,
_this = this;

clearInterval(scrollTimerHandle);
scrollTimerHandle = setTimeout(function() {
positionTimerHandle = setInterval(function(){
if (_this.scrollTop == newScrollPosition){
clearInterval(positionTimerHandle);
} else {
_this.scrollTop--;
}
}, 5);

}, 600);
});

http://jsfiddle.net/etYSC/7/

捕捉到最近的 div

var scrollTimerHandle = "";
var positionTimerHandle = "";

$("#container").scroll(function() {
var boxSize = 84;
var preScrollPosition = parseInt(this.scrollTop / boxSize) * boxSize;
var newScrollPosition = this.scrollTop - preScrollPosition < boxSize /2
? preScrollPosition : preScrollPosition + boxSize;
_this = this;

clearInterval(scrollTimerHandle);

scrollTimerHandle = setTimeout(function() {
positionTimerHandle = setInterval(function(){
if (_this.scrollTop == newScrollPosition){
clearInterval(positionTimerHandle);
} else {
if (_this.scrollTop > newScrollPosition){
_this.scrollTop--;
} else {
_this.scrollTop++;
}
}
}, 5);

}, 700);
});

http://jsfiddle.net/etYSC/8/

感谢所有帮助,我不知道如何解决这个问题,今天学到了很多东西。

最佳答案

不是一个完美的解决方案。

但是这样的事情应该可行(注意:需要改进)

​$("#container").scroll(function() {

this.scrollTop = parseInt(this.scrollTop / 84) * 84; // 84 = height + top and bottom margin

});​​​

在这里 fiddle http://jsfiddle.net/R7tAK/1/

更新

一些比上面更精炼的代码,没有任何其他插件或库。 (消除闪烁)

var scrollTimerHandle = "";

$("#container").scroll(function() {

var newScrollPosition = parseInt(this.scrollTop / 84) * 84,
_this = this;

clearInterval(scrollTimerHandle);

scrollTimerHandle = setTimeout(function() {
_this.scrollTop = newScrollPosition ;

}, 1000);


});​

在这里播放 http://jsfiddle.net/R7tAK/4/

关于jquery - 如何让滚动条只以固定的时间间隔滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11902743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com