javascript - 在纯 JS中的标签上触发 touchstart 事件时,如何防止滚动而不是链接跟随?
问问题
71 次
1 回答
1
这应该适合你。我用过touchmove, touchend and touchstart
。
isTouchMove
是一个布尔变量,用于检测用户是否使用触摸设备滚动。
// if user with a touch device is scrolling this is set to true
var isTouchMove = false;
// selectors
var body = document.querySelector('body');
var a = document.querySelector('a');
// set "isTouchMove" to true when you are scrolling
body.addEventListener("touchmove", function() {
isTouchMove = true;
});
// fire event on touch and set "isMoveTouch" to false
a.addEventListener("touchstart", function() {
isTouchMove = false;
});
// fire event when you leave the link
a.addEventListener("touchend", function() {
if(isTouchMove) return;
// your stuff
});
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Blanditiis unde, natus iusto, laborum dignissimos praesentium nam animi, ipsa inventore eius nihil! Sit nam voluptate eveniet sunt a tempore iure quibusdam!</p>
<p>Ratione inventore earum, non eveniet omnis incidunt dicta debitis, ipsum suscipit quas tenetur amet provident officiis labore, veritatis commodi consequatur! Ea dolorum, quis rerum minus quasi consequuntur eius odio reiciendis.</p>
<br>
<a href="http://nestordominguez.com" target="_blank">Click here</a>
<br>
<p>Laboriosam dicta officiis amet fuga! Atque officia, cupiditate recusandae vitae laboriosam dolorem tenetur minus. Perspiciatis nesciunt tenetur deserunt placeat similique ipsa reprehenderit! Esse ducimus laboriosam nulla, autem quibusdam corporis totam.</p>
<p>Aliquam dignissimos ex non magnam, rerum odio voluptates ducimus aspernatur. Dolorem quas, molestias dicta recusandae dolorum earum adipisci modi nemo alias accusantium eaque. At eos, dolorum et culpa quaerat recusandae!</p>
<p>Veniam tempora numquam aliquam perferendis, dolor voluptatem at, eligendi explicabo sunt minima nam debitis possimus nemo esse doloribus itaque consectetur odio rerum dolorum quasi facere saepe quidem. Laborum, cum, asperiores?</p>
<p>Magni, delectus. Illo sed blanditiis quae pariatur amet ratione quis perspiciatis error veritatis non laborum quibusdam ea, suscipit sequi esse velit doloribus ducimus ex ipsum modi aliquid tenetur. Reiciendis, eaque?</p>
于 2016-07-11T10:47:58.207 回答