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


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队列控制方法详解queue()/dequeue()/clearQueue()
Dec 02 Javascript
JS中使用sort结合localeCompare实现中文排序实例
Jul 23 Javascript
JSON格式的键盘编码对照表
Jan 29 Javascript
移动端JQ插件hammer使用详解
Jul 03 Javascript
javascript常用正则表达式汇总
Jul 31 Javascript
JS函数的几种定义方式分析
Dec 17 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
Aug 08 Javascript
浅谈javascript的闭包
Jan 23 Javascript
实例解析js中try、catch、finally的执行规则
Feb 24 Javascript
基于bootstrap实现多个下拉框同时搜索功能
Jul 19 Javascript
vue中img src 动态加载本地json的图片路径写法
Apr 25 Javascript
前端深入理解Typescript泛型概念
Mar 09 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
PHP 数字左侧自动补0
2008/03/31 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
PHP开发负载均衡指南
2010/07/17 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
教你安装python Django(图文)
2013/11/04 Python
Python实现对PPT文件进行截图操作的方法
2015/04/28 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
平安建设实施方案
2014/03/19 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
农行心得体会
2014/09/02 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js