我的html頁面出現問題。我想停用觸摸移動所有頁面,除了我想要滾動的div。所以我添加此JS代碼:觸摸移動作品一次
document.ontouchmove = function (e) { if (e.target.id !== 'rest_comm') { e.preventDefault(); } };
它並不總是奏效。
我發現與奧斯卡帕斯的幫助,問題是滾動div有很多divs裏面。那麼我怎樣才能禁用觸摸整個頁面移動除了滾動div和其所有包括的div。
我的html頁面出現問題。我想停用觸摸移動所有頁面,除了我想要滾動的div。所以我添加此JS代碼:觸摸移動作品一次
document.ontouchmove = function (e) { if (e.target.id !== 'rest_comm') { e.preventDefault(); } };
它並不總是奏效。
我發現與奧斯卡帕斯的幫助,問題是滾動div有很多divs裏面。那麼我怎樣才能禁用觸摸整個頁面移動除了滾動div和其所有包括的div。
我認爲你的問題是e.target並不總是你的滾動div。如果你有它的元素,e.target是你觸及的DOM樹中最深的元素(它可能是一個段落,一個圖像......)。 你需要做的是檢查e.target是否在你的滾動div內,或者是你的滾動div。基本上:
document.addEventListener('touchmove', function(e) {
var node = e.target;
while (node && node.id != 'comm_list_content') node = node.parentElement;
if (!node) e.preventDefault();
}, false);
這樣,如果您觸摸外部div,只能調用preventDefault()。
如果只有在滾動後屏幕中可見的東西是這個div(rest_comm),當然它會阻止滾動,無論你做什麼.. – Hardy
這個div只是頁面高度的50%。所以它不僅在滾動後可見。 – giorgos