微信小程序自定义扫码功能界面的实现代码


Posted in Javascript onJuly 02, 2020

小程序的一个扫码页面,扫码界面一直开着,同时可以处理其他功能,如下:

微信小程序自定义扫码功能界面的实现代码

由于直接调用微信的scanCode,无法自定义界面,所以只能使用原生组件camera,完成这个功能,关于扫描框的四个角的图片,就自己画一下吧,中间的移动横线,使用了小程序的动画功能,在原生camera组件上,覆盖需要用到cover-view和cover-image,同时加入了提示音

/**scan.wxss**/
.scan-view {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  background-color: #B9BEC4;
  position: fixed;
  align-items: center;
  justify-content: space-around;
}
 
.scan-border {
  width: 94%;
  height: 94%;
  border: 6rpx solid #08FDFE;
  border-radius: 10rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
}
 
.scan-camera {
  width: 500rpx;
  height: 500rpx;
  border-radius: 6rpx;
  margin: 30rpx;
}
 
.cover-corner {
  width: 80rpx;
  height: 80rpx;
  position: absolute;
}
 
.cover-left-top {
  left: 0;
  top: 0;
}
 
.cover-right-top {
  right: 0;
  top: 0;
}
 
.cover-left-bottom {
  left: 0;
  bottom: 0;
}
 
.cover-right-bottom {
  right: 0;
  bottom: 0;
}
 
.scan-animation {
  position: absolute;
  top: -10rpx;
  left: 10rpx;
  width: 480rpx;
  height: 8rpx;
  background-color: #08FDFE;
  border-radius: 50%;
}
<!--scan.wxml-->
<view class="scan-view">
  <view class='scan-border'>
    
    <camera class='scan-camera' mode="scanCode" binderror="cameraError" bindscancode='scancode' frame-size='large'>
      <cover-image class='cover-corner cover-left-top' src='/images/left-top.png'></cover-image>
      <cover-image class='cover-corner cover-right-top' src='/images/right-top.png'></cover-image>
      <cover-image class='cover-corner cover-left-bottom' src='/images/left-bottom.png'></cover-image>
      <cover-image class='cover-corner cover-right-bottom' src='/images/right-bottom.png'></cover-image>
      
      <cover-view class='scan-animation' animation="{{animation}}"></cover-view>
    </camera>
    <!-- 这里可以处理其他内容 -->
  </view>
</view>
// scan.js
// 移动动画
let animation = wx.createAnimation({});
// 提示音
let innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.src = '/images/beep.mp3'
 
Page({
  data: {
    
  },
  onLoad: function () {
    
  },
  onShow(){
    this.donghua()
  },
  donghua(){
    var that = this;
    // 控制向上还是向下移动
    let m = true
    
    setInterval(function () {
      if (m) {
        animation.translateY(250).step({ duration: 3000 })
        m = !m;
      } else {
        animation.translateY(-10).step({ duration: 3000 })
        m = !m;
      }
 
      that.setData({
        animation: animation.export()
      })
    }.bind(this), 3000)
  },
  scancode(e){
    // 提示音
    innerAudioContext.play()
    // 校验扫描结果,并处理
    let res = e.detail.result
  }
})

总结

到此这篇关于微信小程序自定义扫码功能界面的实现代码的文章就介绍到这了,更多相关微信小程序自定义扫码内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
动态改变textbox的宽高的js
Oct 26 Javascript
JavaScript访问样式表代码
Oct 15 Javascript
一个JavaScript处理textarea中的字符成每一行实例
Sep 22 Javascript
jQuery前端框架easyui使用Dialog时bug处理
Dec 05 Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 Javascript
javascript实现保留两位小数的多种方法
Dec 18 Javascript
Node.js返回JSONP详解
May 18 Javascript
BootstrapValidator超详细教程(推荐)
Dec 07 Javascript
JavaScript获取中英文混合字符串长度的方法示例
Feb 04 Javascript
AngularJS表单提交实例详解
Feb 18 Javascript
jQuery简易时光轴实现方法示例
Mar 13 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
Mar 05 Javascript
JS字符串和数组如何实现相互转化
Jul 02 #Javascript
Vue父子之间值传递的实例教程
Jul 02 #Javascript
JS出现404错误原理及解决方案
Jul 01 #Javascript
vue结合el-upload实现腾讯云视频上传功能
Jul 01 #Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 #Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 #Javascript
通过angular CDK实现页面元素拖放的步骤详解
Jul 01 #Javascript
You might like
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
BBS(php &amp; mysql)完整版(六)
2006/10/09 PHP
php生成圆角图片的方法
2015/04/07 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
javascript 日期常用的方法
2009/11/11 Javascript
JavaScript格式化数字的函数代码
2010/11/30 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
对Python 语音识别框架详解
2018/12/24 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
python 并发下载器实现方法示例
2019/11/22 Python
python小技巧——将变量保存在本地及读取
2020/11/13 Python
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
初中三年学生的学习自我评价
2013/11/13 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
技校毕业生自荐书
2014/05/23 职场文书
超市客服工作职责
2014/06/11 职场文书
防灾减灾活动总结
2014/08/30 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python