我有一個phonegap應用程序,使用iOS本地滾動通過-webkit-overflow-scrolling
在div中。我希望能夠在用戶單擊按鈕(要滾動回頁面頂部)時手動停止正在進行的滾動。這是可行的嗎?以編程方式停止-webkit溢出滾動
1
A
回答
2
不幸的是,目前尚不可能。僅當滾動結束時纔會觸發scroll
事件。只要動力不斷移動,內容就會被觸發。您可以在Apple的「Safari網頁內容指南」中的Figure 6-1 The panning gesture中看到此內容。
我也創建了一個fiddle to demonstrate這種行爲。在之後,scrollTop
的值設置爲iOS完成動畫。
3
當使用fastclick.js時,這實際上是非常可能的。該庫消除了移動設備上的300毫秒點擊延遲,並可在慣性/動量滾動期間實現事件捕獲。
包括fastclick並將其連接到body元素後,我的代碼來停止滾動,進入到頂部看起來是這樣的:
scrollElement.style.overflow = 'hidden';
scrollElement.scrollTop = 0;
setTimeout(function() {
scrollElement.style.overflow = '';
}, 10);
關鍵是要設置overflow: hidden
,該停止的慣性/氣勢滾動。請看我的小提琴全面實施stop scrolling during inertia/momentum。
+0
非常感謝!應該接受答案。 – silenzium
0
您可以使用'touchstart'而不是'click'來捕捉觸摸事件,因爲在動量滾動完成之前,點擊事件似乎不會被觸發。試試這個jQuery的解決方案:
$('#yourTrigger').on('touchstart', function() {
var $div = $('.yourScrollableDiv');
if ($div.scrollTop() === 0) {
return false; //if no scroll needed, do nothing.
}
$div.addClass('scrolling'); //apply the overflow:hidden style with a class
$div.animate({
scrollTop: 0
}, 600, function() {
$div.removeClass('scrolling'); //scrolling has finished, remove overflow:hidden
});
}
在「滾動」類只是有CSS屬性,溢出:隱藏,這是@帕特里克 - 魯道夫說,將暫停所有的勢頭正在滾動。
.scrolling {
overflow: hidden;
}
注意:最好使用回調函數來告訴滾動動畫何時完成,而不是設置定時器功能。
相關問題
- 1. 以編程方式停止GIF動畫
- 2. 反正有停止以編程方式滾動嗎?
- 3. 如何以編程方式停止水平滾動?
- 4. 溢出:滾動停止從激活
- 5. DIV溢出滾動停止短
- 6. 溢出:android和原生滾動的滾動元素,-webkit溢出滾動:touch
- 7. 安全使用-webkit溢出滾動?
- 8. Sencha Touch 2&webkit溢出滾動:觸摸
- 9. webkit溢出滾動使元素消失
- 10. Webkit溢出滾動對齊元素
- 11. 橫幅滾動窗口滾動,但停止和不溢出div?
- 12. 如何以編程方式停止java.util.logging?
- 13. 以編程方式停止導航
- 14. 以編程方式停止請求
- 15. 如何以編程方式停止ServletRequestListener?
- 16. 以編程方式停止PlayFramework作業
- 17. 錘上元素防止-webkit溢出滾動:觸摸子元素
- 18. 使用角度在溢出-x自動停止自動滾動
- 19. 以編程方式停止並啓動BizTalk 2009應用程序?
- 20. 以編程方式啓動/停止騾子流程
- 21. 使用-webkit溢出滾動的滾動問題:touch
- 22. 隱藏的WebKit滾動條時溢出滾動:觸摸啓用
- 23. 使用「-webkit溢出滾動:觸摸」的實時滾動事件
- 24. 使用-webkit溢出滾動在iOS 5中滾動的問題
- 25. webkit溢出滾動觸摸衝突與webkit變換
- 26. DIV溢出:自動停止滾動時的內容添加
- 27. 以編程方式停止Windows服務時出錯
- 28. 以編程方式平滑滾動UIPageViewController
- 29. 以編程方式滾動THorzScrollBox Firemonkey XE6
- 30. 以編程方式滾動視圖
我測試了iOS 6.1和7.1 Mobile Safari,發現'scroll'事件在動量滾動期間觸發。 –