[英]jQuery to auto-scroll with skrollr on mobile?
我已經使用skrollr為iOS制作了視差網站。 我想以編程方式向下滾動到頁面上的某個點。 我使用了jQuery滾動插件,它們在台式機上工作,但不適用於移動設備。 如何使用jQuery模擬滑動或以某種方式模擬滾動到另一點? 謝謝!
編輯:這行不通的原因是在移動設備上,由於iOS在滾動過程中停止了動畫,所以skrollr並未真正滾動。 相反,它偵聽觸摸事件並移動元素。 這就是為什么scrollTo插件不起作用的原因。 (來源: https : //github.com/Prinzhorn/skrollr#mobile-support )
實際上,我只是意識到skrollr API具有內置功能!
我可以調用skrollr.animateTo(400)
,而skrollr是用於啟動skrollr的變量。
希望這對別人有幫助!
這更像是僅供參考。
我在使用skrollr為手機實現自動滾動功能時發現的優缺點是:
我使用了兩個庫來處理觸摸事件[jQuery Mobile,Hammer.js],由於我更喜歡文檔,所以最終堅持使用Hammer。
我在ipad上使用它的方式很簡單。 如果您點擊並按住右側的屏幕,它將自動向下滾動直到您放開為止。 反之亦然在左邊。
我的問題是它將無法讀取釋放事件並繼續滾動,並且用戶無法停止它。
在弄亂它一段時間后,我決定將其更改。 我所做的是放置兩個用戶可以點擊的按鈕,它將自動滾動到整個skrollr動畫的下一部分。
這是我編寫的代碼的示例。
var ai = 0;
var positionArray = [0, 1244,3194,15468]
$(function () {
var rightArrow = document.getElementById('right-arrow')
var mcRight = new Hammer(rightArrow);
mcRight.on("tap", function (ev) {
ai++
s.animateTo(positionArray[ai])
//alert(s.getScrollTop())
});
var leftArrow = document.getElementById('left-arrow')
var mcLeft = new Hammer(leftArrow);
mcLeft.on("tap", function (ev) {
ai--
s.animateTo(positionArray[ai])
});
})
希望這可以幫助。 我想要使用點擊並按住的原始方式,但是兩個插件在滾動讀取Taphold釋放事件時都有問題。
另一個問題,但通過查看文檔非常容易解決,無論動畫部分的長度有多長,都需要1秒才能到達。 如果這是一個很小的部分,它很好,但是如果您有一個很長的部分,它會很快擦洗整個部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.