就一個(gè)簡(jiǎn)單的滑塊功能,不知道怎么解決這個(gè)錯(cuò)誤,谷歌了一下發(fā)現(xiàn)好像是跟touch事件的默認(rèn)事件有關(guān),沒(méi)找到針對(duì)性的解決辦法。。。
1 回答

狐的傳說(shuō)
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
有兩個(gè)方法可以解決這個(gè)問(wèn)題:
方法一、CSS屬性:touch-action:none解決treated as passive錯(cuò)誤,作用在滑塊元素上
此方法有不足:
(1). iOS Safari瀏覽器不支持;
(2). 干掉了可能需要的原生的touch相關(guān)行為
方法二:直接傳遞passive:false解決treated as passive錯(cuò)誤
問(wèn)題代碼是:
document.addEventListener('touchmove', function (event) { event.preventDefault(); });
修復(fù)后的JavaScript代碼是:
document.addEventListener('touchmove', function (event) { event.preventDefault(); }, { passive: false});
也就是addEventListener的第三個(gè)參數(shù)傳遞passive:false,告訴瀏覽器,我這個(gè)事件就是不是消極的,是老子主動(dòng)要這么做的。瀏覽器此時(shí)也不好說(shuō)什么,然后,我們以前出問(wèn)題的代碼就能正常運(yùn)行了。
意外學(xué)到了CSS touch-action相關(guān)的一些知識(shí)。有了touch-action:manipulation,我們可以在網(wǎng)頁(yè)中放心大膽使用click事件了。
添加回答
舉報(bào)
0/150
提交
取消