簡體   English   中英

jQuery在移動設備上使用skrollr自動滾動?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM