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


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 相关文章推荐
asp批量修改记录的代码
Jun 25 Javascript
根据鼠标的位置动态的控制层的位置
Nov 24 Javascript
浅谈Sizzle的“编译原理”
Apr 14 Javascript
js图片跟随鼠标移动代码
Nov 26 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
vue实现商城购物车功能
Nov 27 Javascript
使用JS获取页面上的所有标签
Oct 18 Javascript
详解如何构建Promise队列实现异步函数顺序执行
Oct 23 Javascript
详解几十行代码实现一个vue的状态管理
Jan 28 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
Sep 05 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
Oct 28 Javascript
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
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
杏林同学录(八)
2006/10/09 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
jQuery列表拖动排列具体实现
2013/11/04 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
Python 文件读写操作实例详解
2014/03/12 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
python用什么编辑器进行项目开发
2020/06/17 Python
为什么是 Python -m
2020/06/19 Python
python如何快速生成时间戳
2020/07/21 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
python跨文件使用全局变量的实现
2020/11/17 Python
《一株紫丁香》教学反思
2014/02/19 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
婚前协议书范本两则
2014/10/16 职场文书
机关作风建设工作总结
2014/10/23 职场文书
英文自荐信范文
2015/03/25 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
赢在执行观后感
2015/06/16 职场文书
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript