gpt4 book ai didi

android - DOM 元素的 TouchLeave

转载 作者:太空狗 更新时间:2023-10-29 16:23:54 26 4
gpt4 key购买 nike

我想要我的页面上有一个 div 元素,当它被按下时它会增加页面上的数字。这相当简单,但我希望它也能在 iPad 和 Android 设备上运行。

我在 div 上使用 jQuery 绑定(bind)来使用 touchstart 事件。使用 setInterval 我更新了数字(我可以在每次增加数字时调用 setTimeout,但这无关紧要)。我希望在手指(触摸)移出 div 时清除间隔。不幸的是,直到手指从屏幕上松开,touchend 才会被调用。Mobile safari 或 webkit 似乎不支持 touchleave。

所以我的问题是:关于如何模仿 touchleave 有什么想法吗?

最佳答案

根据以上回答,我是这样做的。

var $this = $('elementselector');
var fnmove = function (e) {
e.preventDefault();
e = e.originalEvent;
var touch = e.touches[0] || e.changedTouches[0];
if (!_isInBounds(touch, $this.offset(), $this.outerWidth(), $this.outerHeight())) {
$this.trigger(touch_leave_event);
$this.unbind(touch_move_event, fnmove);
};
};
$this.bind(touch_move_event, fnmove);

-- 入站函数

function _isInBounds(touch, elemposition, width, height) {
var left = elemposition.left,
right = left + width,
top = elemposition.top,
bottom = top + height,
touchX = touch.pageX,
touchY = touch.pageY;

return (touchX > left && touchX < right && touchY > top && touchY < bottom);
};

关于android - DOM 元素的 TouchLeave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7002851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com