移动端H5模拟长按行为

需求: 点击编辑, 长按删除

环境: 移动端H5

思路: 使用touchstart事件 + touchend事件 + setTimeout定时器模拟原生长按事件, 在touchstart中记录开始时间并开启一个定时器,一段时间(长按行为时间)后,在setTimeout中执行删除逻辑,在touchend中记录结束时间并清除定时器,之后比对开始时间和结束时间,如果时间差小于长按行为时间,则执行编辑逻辑。

示例代码:

let timer = null; //定时器

let startTime = 0; //行为起始时间

let endTime = 0; //行为结束时间

let btn = document.querySelector('.option_btn') ; // 获取按钮元素

btn.addEventListener('touchstart', ()=>{  //监听touchstart事件

    startTime = Date.now(); //获取行为开始时间

    setTimeout( () => {

        //执行删除逻辑

    }, 500) // 假设长按时间为500毫秒

})

btn.addEventListener('touchend', ()=>{  //监听touchend事件

    endTime = Date.now(); //获取行为结束时间

    clearTimeout(timer); //清除定时器,此时阻止了删除逻辑的触发

    if(endTime - startTime < 500) { //如果行为时常小于长按,则执行编辑逻辑

        //执行编辑逻辑

    }

})

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 英文:Obaseki Nosa 译文:kingrychengithub.com/OFED/translation/...
    grain先森阅读 8,429评论 0 2
  • meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 忽略将页面中的数字识别为电话号码 忽略And...
    Mycro阅读 4,496评论 0 11
  • mobileHack 这里收集了许多移动端上遇到的各种坑与相对解决方案 工具类网站 HTML5 与 CSS3 技术...
    安石0阅读 5,893评论 0 5
  • 红妆罗裳拂衣戏,面纱思语吻经年,寄青山,信南山,三生青山一生面,缘浅才算伤心人,滴水过楼冬天去,多少秋帐多少算,朝...
    世界十大杰出青年阅读 2,900评论 0 0
  • 清晨窗外雪茫茫 凝神梦回少年郎 翻爬滚打雪中趣 如今谁与论短长
    淞清梅杰阅读 1,527评论 0 0