![](/img/trans.png)
[英]jQuery, if window has scrolled X pixels do this, else if has scrolled XX pixels do something else
[英]jQuery window scroll event. For every XX pixels scrolled
我正在使用優秀的jQuery Reel插件( http://jquery.vostrel.cz/reel )進行項目。 我想綁定到窗口滾動事件,所以當用戶向下滾動頁面時,插件前進1幀,例如每10px滾動一次,如果用戶向上滾動動畫則反轉。
該插件有方法我可以傳遞值沒有問題,我知道如何綁定到窗口滾動事件。 我正在努力的是最后一次。
我如何使用jQuery / JavaScript來表示在任何垂直方向上滾動的每10個像素在動畫中前進1幀? 我知道我可以將窗口滾動存儲在一個變量中,但我不確定每次碰到10個前進一幀的倍數時該怎么說。
提前謝謝了。
編輯
感謝下面用戶的幫助,我找到了一個解決方案。 如下:
$(window).scroll(function()
{
windowScrollCount = $(this).scrollTop();
animationFrame = Math.round(windowScrollCount / 100);
});
所以我在windowScrollCount中獲取滾動距離,將其轉換為animationFrame中的幀並使用.reel(“frame”,animationFrame)將其設置回來。 我實際上是每100幀一次這樣做,因為每10幀都要快。
感謝codef0rmer和noShowP的幫助,我制定了一個解決方案。 如下:
$(window).scroll(function()
{
windowScrollCount = $(this).scrollTop();
animationFrame = Math.round(windowScrollCount / 100);
});
所以我在windowScrollCount中獲取滾動距離,將其轉換為animationFrame中的幀並使用.reel(“frame”,animationFrame)將其設置回來。 我實際上是每100幀一次這樣做,因為每10幀都要快。
如果我錯了你可能會想要這個:
var jump = 500; // consider this is your 10px
window.scrollHeight = 0;
$(window).scroll(function () {
console.log($(this).scrollTop());
var diff = $(this).scrollTop() - window.scrollHeight;
if (diff >= jump) {
window.scrollHeight = $(this).scrollTop();
console.log('reload frame');
}
});
演示: http : //jsfiddle.net/Dyd6h/
您可以在頁面頂部放置一個粘性元素,
位置:固定; 前0; 左:0;
(如果你願意,隱藏)。
然后在滾動時可以監視其偏移量:
$('element').offset().top
然后,您可以看到您滾動頁面的距離,因此每次滾動時都會看到它的最高值是什么並且適當地觸發事件?
編輯:
我已經建立了一個小JSfiddle,開始我認為你需要的東西。
我只是計算你需要的框架並將其存儲在變量中。 這是你想要的東西嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.