2011-06-22 50 views
2

我們使用iscroll來啓用一個長div在ipad上滾動。但是,因爲iscroll已經觸發了觸摸事件,所以用戶不能再選擇div內的文本。是否有可能通過ipad上的iscroll選擇文本?

有誰知道這是否有解決方法?

從理論上講,iscroll應該對拖動不觸摸做出響應,但實際上這似乎沒有發生。

其他人有這個問題嗎?

回答

1

當您實現iScroll時,示例文件在body標籤上通常具有 -webkit-user-select:none;的css規則。如果您在決定拖動之前觸摸並按住該規則,則此規則有助於不會選擇文本。刪除該行(註釋掉)以恢復文本選擇功能。但是,這樣,當用戶與啓用了iScroll的區域進行交互時,文本選擇器可能會出現不合時宜的時刻。 乾杯

+0

我刪除了所有這** ** CSS線的問題一個很好的修復,仍然不工作'\t -MS-觸摸-action:none; \t -webkit-touch-callout:none; \t -webkit-user-select:none; \t -moz-user-select:none; \t -ms-user-select:none; \t user-select:none;' –

0

查找這一行iscroll.js文件:

129(for me): onBeforeScrollStart: function (e) { e.preventDefault(); }, 

現在要允許文本選擇簡單地使用塊的類名。像這樣

onBeforeScrollStart: function (e) { if (!el.match("block")) e.preventDefault(); } 

該代理不會阻止默認行爲並允許用戶選擇文本。

+1

那不適合我? –

+1

我只是刪除e.preventDefault(),它的工作原理。此外,不要編輯iscroll源代碼,只需將'onBeforeScrollStart'選項添加到iScroll初始化程序中,併爲其指定一個空白函數。 – Calvin

相關問題