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


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 相关文章推荐
jQuery调用WebService的实现代码
Jun 19 Javascript
jQuery滚动加载图片实现原理
Dec 14 Javascript
javascript正则表达式定义(语法)总结
Jan 08 Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 Javascript
js/jq仿window文件夹框选操作插件
Mar 08 Javascript
js实现日期显示的一些操作(实例讲解)
Jul 27 Javascript
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
vue+element项目中过滤输入框特殊字符小结
Aug 07 Javascript
js中关于Blob对象的介绍与使用
Nov 29 Javascript
JavaScript链式调用原理与实现方法详解
May 16 Javascript
解决echarts数据二次渲染不成功的问题
Jul 20 Javascript
el-form 多层级表单的实现示例
Sep 10 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
mysql 搜索之简单应用
2007/04/27 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
javascript每日必学之封装
2016/02/23 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
Python中对列表排序实例
2015/01/04 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
师德建设实施方案
2014/03/21 职场文书
师德自我剖析材料范文
2014/10/06 职场文书