js原生touch事件实现微信语音按住录音,上滑取消。
2017-10-31 09:58
716 查看
由于在微信公众号上要开发语音聊天功能,前端需求就需要有一个类似微信的语音聊天,我看了下微信的语音,操作流程就是按住录音,滑动超出一定距离就取消发送。
需求确定了,下面就是敲代码了
全部的核心代码都在这,可以直接复制粘贴打开运行,注意:推荐在Chrome浏览器 按F12 开启手机浏览模式运行。注意看打印消息。
好,今天都到这。
每天一点点,砸锅盖大楼。
参考网站:http://www.uw3c.com/jsviews/js52.html
需求确定了,下面就是敲代码了
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>lee-voice</title> <style type="text/css"> *{ margin: 0; padding: 0; } html,body{ background: #fff; } .btn{ position: fixed; bottom: 0; width: 100%; height: 150px; background: #eee; } .btn input{ width: 100%; height: 100%; font: 50px/150px 'microsoft yahei'; } </style> </head> <body> <div class="btn"> <input type="button" name="" id="messageBtn" value="按住 说话"> </div> <script type="text/javascript"> var btnElem=document.getElementById("messageBtn");//获取ID var posStart = 0;//初始化起点坐标 var posEnd = 0;//初始化终点坐标 var posMove = 0;//初始化滑动坐标 console.log(screen); function initEvent() { btnElem.addEventListener("touchstart", function(event) { event.preventDefault();//阻止浏览器默认行为 posStart = 0; posStart = event.touches[0].pageY;//获取起点坐标 btnElem.value = '松开 结束'; console.log("start"); console.log(posStart+'---------开始坐标'); }); btnElem.addEventListener("touchmove", function(event) { event.preventDefault();//阻止浏览器默认行为 posMove = 0; posMove = event.targetTouches[0].pageY;//获取滑动实时坐标 if(posStart - posMove < 500){ btnElem.value = '松开 结束'; }else{ btnElem.value = '松开手指,取消发送'; } /*console.log(posStart+'---------'); console.log(posMove+'+++++++++');*/ }); btnElem.addEventListener("touchend", function(event) { event.preventDefault(); posEnd = 0; posEnd = event.changedTouches[0].pageY;//获取终点坐标 btnElem.value = '按住 说话'; console.log("End"); console.log(posEnd+'---------结束坐标'); if(posStart - posEnd < 500 ){ console.log("发送成功"); save(); }else{ console.log("取消发送"); console.log("Cancel"); }; }); }; initEvent(); function save(){ //ajax console.log('Success'); } </script> </body> </html>
全部的核心代码都在这,可以直接复制粘贴打开运行,注意:推荐在Chrome浏览器 按F12 开启手机浏览模式运行。注意看打印消息。
好,今天都到这。
每天一点点,砸锅盖大楼。
参考网站:http://www.uw3c.com/jsviews/js52.html
相关文章推荐
- 【原创】.Net 微信 JS-SDK图片、语音上传接口的实现(MVC)-(二 、上传图片服务器操作)
- 原生js 实现document ready事件,出自犀牛书
- js仿微信语音播放实现思路
- 绑定touchstart事件(原生js),小心击穿问题
- 试题:原生JS实现的全选/全不选,点行可选中取消
- js原生事件委托的实现
- 原生js实现下拉到底事件
- 【原创】.Net 微信 JS-SDK图片、语音上传接口的实现(MVC)-(一 、上传图片)
- (二)原生JS实现 - 事件类方法
- 原生JS元素怎么取消事件
- 原生js实现自定义事件
- 通过原生JS实现为元素添加事件的方法
- [置顶] 时间一到,开抢月饼(原生JS简单实现定时自动点击事件)
- 通过原生JS实现为元素添加事件的方法
- 原生JS实现跨浏览器的事件处理程序
- 原生js实现下拉到底事件(2)-解决为什么ie下的onscroll事件轮滚过快就执行了2次呢?
- 原生JS实现addClass,removeClass,toggleClass ,附:类似jquery hover事件
- Android 录音实现方法、仿微信语音、麦克风录音、发送语音
- 通过原生JS实现为元素添加事件