iOS上的长按按钮(Javascript)

时间:2014-09-10 18:11:18

标签: javascript html ios css

是否可以让按钮在iOS上按下长按钮?我已经搜遍了所有,但没有找到任何解决此问题的方法。首先,如果您长按一个按钮,它将尝试选择它(用于复制)。使用一些CSS,我禁用了它,但它仍然没有注册长按按钮。我认为这是因为您可能正在滚动页面,而不是长时间按下它。这样做的目的是我希望按钮在长按时消失。

这是一个可以在PC上运行的JSFiddle,但不在我的iPhone上(有一个div注释掉,因为如果长按在div或按钮上并不重要,我可以创建使用div的人工按钮: http://jsfiddle.net/ynkLmz5n/3/

提前致谢。

var MenuToggle = document.getElementsByClassName("hide")[0];
MenuToggle.style["-webkit-user-select"] = "none";
MenuToggle.addEventListener("mousedown", Vanish);
MenuToggle.addEventListener("mouseup", VanishClear);
var timer;
function Vanish() {
    longpress = false;
    timer = setTimeout(function() {
        MenuToggle.style.display = "none";
    }, 1000);
}
function VanishClear() {
    clearTimeout(timer);
}

2 个答案:

答案 0 :(得分:4)

您是否尝试过使用touch个活动?

var timer

MenuToggle.addEventListener('touchstart', function() {
  timer = setTimeout(function() {
    MenuToggle.style.display = 'none'
  }, 1000)
}, false)

MenuToggle.addEventListener('touchend', function() {
  clearTimeout(timer)
}, false)

答案 1 :(得分:1)

您需要使用touch个事件(touchstart和touchend)代替鼠标事件。

这是一个更新的小提琴:http://jsfiddle.net/ynkLmz5n/4/

MenuToggle.addEventListener("touchstart", Vanish);
MenuToggle.addEventListener("touchend", VanishClear);

另外,如果您要添加触摸交互,我建议使用hammer.js。这是一个很棒的触摸库,包括对Press

等内容的支持

项目页面:http://hammerjs.github.io/

新闻事件文档:http://hammerjs.github.io/recognizer-press/