首页 新闻 会员 周边

如何自定义按钮长按事件?

0
悬赏园豆:50 [待解决问题]

如题 如何自定义按钮长按事件?

如按钮按住,注意是按住,是buttondown事件, 然后执行相关的处理

不是在buttonUP里检测按下到台起的时间

就像微信的发朋友圈那个按钮,按一下,问你是小视频还是图片,按住2-3秒,直接进入文本录入状态

码农加一的主页 码农加一 | 初学一级 | 园豆:81
提问于:2016-01-18 23:27
< >
分享
所有回答(4)
0

ge人理解,按下事件中发起线程,线程检测按钮状态达到时间后开始执行特定动作,buttonup中通知线程结束动作

起个名字 | 园豆:377 (菜鸟二级) | 2016-01-19 09:09

谢谢,

支持(0) 反对(0) 码农加一 | 园豆:81 (初学一级) | 2016-01-19 16:14
0

首先,分别在PressUp和PressDown事件分别定义各自的状态;

然后,在PressDown事件中使用线程在多长时间后去检测PressUp和PressDown各自的状态,判断是否满足长按的条件就OK了。

CodeHsu | 园豆:5468 (大侠五级) | 2016-01-19 09:41

谢谢,

支持(0) 反对(0) 码农加一 | 园豆:81 (初学一级) | 2016-01-19 16:14
0
<button id="btn" value="Click">Click</button>
    <script type="text/javascript">
        var btn = document.getElementById("btn");
        var h;
        var isLongTouch = false;
        btn.onmousedown = function () {
            isLongTouch = false;
            h = setTimeout(function () {
                isLongTouch = true;
                console.warn("hello");
            }, 5000);
        }
        btn.onclick = function () {
            if (isLongTouch === false)
                confirm("Ok or No?");
        }
        btn.onmouseup = function () {
            if (h != null) {
                clearTimeout(h);
            }
        }
    </script>
View Code

试着写了下

jello chen | 园豆:7336 (大侠五级) | 2016-01-19 10:13

谢谢,

 

支持(0) 反对(0) 码农加一 | 园豆:81 (初学一级) | 2016-01-19 16:14
0

在按下事件中处理,延迟一定时间后,开始执行你要做的事情。如果在这个延迟时间中触发了ButtonUp事件,那么就设置一个状态,让按下事件中的代码不在执行。

幻天芒 | 园豆:37175 (高人七级) | 2016-01-19 12:17

谢谢,

 

支持(0) 反对(0) 码农加一 | 园豆:81 (初学一级) | 2016-01-19 16:15

@韩之一: :)

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2016-01-19 20:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册