热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序常六位付款密码组件与模板写法

先看看效果Html代码<viewwx:if{{allinputF1}}><viewclassqiue

先看看效果


Html代码


	关闭
	请输入您的支付密码
	
		
			
				
			
		
		
			
		
	

Css代码

.payPass_box1{
	font-size: 26rpx;
	color: #333;
	width: 640rpx;
	text-align: center;
	margin-top: 40rpx;
	height:400rpx;
	position: fixed;
	left: 50%;
	top: 30%;
	transform: translate(-50%,-50%);
	border: 2rpx #d1d1d1 solid;
	background: #fff;
	opacity: .9;
}
.payPass_box_t{
	margin-top: 100rpx;
}
.payPass_box_m{
	margin-top: 80rpx;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}
.payPass_box_m_in{
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 10;
}
.payPass_box_m_in_in{
	width: 70rpx;
	height: 70rpx;
	border:4rpx #bfbfbf solid;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-right:8rpx; 
}
.indexTopInput{
	position: absolute;
	height: 100%;
	background: #000;
	opacity: 0.5;
	z-index: 2;
	left: 0rpx;
	background: red;
	left: -150%;
}
.indexTopInput input{
	width: 100%;
	height: 100%;
}
.qiueBtn{
	position: absolute;
	right: 20rpx;
	top: 10rpx;
	width: 80rpx;
	height: 60rpx;
	text-align: right;
	color: #999
}

组件的js代码        

// components/sixpass/sixpass.js
var http = require('../../utils/http.js');
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    allinputF1:true,
    inputArr:[],
    inputStr:'',
    focusF:[],
    allinput:'',
  },

  /**
   * 组件的方法列表
   */
  methods: {
    passInput(e){
      var that = this;
      var value = e.detail.value;
      var num = e.detail.cursor-1;
      this.triggerEvent("passInput")
      var inputArr = [];
      for(let i=0;i<=num;i++){
        inputArr.push(value.substring(i,i+1))
      }
      if(inputArr.length>=6){
        that.setData({
          inputSrr:value,
          inputArr:inputArr,
          allinput:value,
        })
        console.log('密码输入完成 '+inputArr)
      }else{
        that.setData({
          inputSrr:value,
          inputArr:inputArr,
          allinput:''
        })
      }
    },
    allInputBtn(e){
      var that = this;
      var index = e.target.dataset.index;
      var focusF = http.forC(that.data.focusF);
      var inputArr = that.data.inputArr;
      var value = e.detail.value
      if(inputArr[index]){
        inputArr[index] = '';
        focusF[index] = '1';
      }else{
        inputArr[index] = value;
        focusF[index+1] = '1';
      }
      that.setData({focusF:focusF,inputArr:inputArr})
    },
    // 点击关闭密码框
    hideBox(){
      this.setData({allinputF1:false})
    },
    show(){
      this.setData({allinputF1:true})
    },
    focusInput(){
      console.log(this.data.inputStr)
      this.setData({allinputF1:true})
    },
  }
})

json代码

{
  "component": true,
  "usingComponents": {}
}

在需要的地方引入组件

{
	"usingComponents": {
	    "sixpass": "/components/sixpass/sixpass"
	  },
	 "navigationBarTitleText": "钱包-提现"
}

这样就是引入成功了

然后开始在页面调用sixpass这个六位密码的组件

页面js的引用

// 1.6.3以上模板组件写法
  passInput(e){
    console.log(this.sixpass.data.allinput);
    if(this.sixpass.data.allinput.length>=6){
      console.log('已经完成'+this.sixpass.data.allinput)
    }else{
      console.log('还差点 '+this.sixpass.data.allinput)
    }
  },

值得注意的是小程序1.6.3以上才支持模板的写法,需要低版本兼容的这个就不好用了所以也可以用模板写法来实现就是用的时候少写一遍CSS与HTML

模板的HTML

模板的Css

/*密码*/
.payPass_box1{
    font-size: 26rpx;
    color: #333;
    width: 640rpx;
    text-align: center;
    margin-top: 40rpx;
    height:400rpx;
    position: fixed;
    left: 50%;
    top: 30%;
    transform: translate(-50%,-50%);
    border: 2rpx #d1d1d1 solid;
    background: #fff;
    opacity: .9;
}
.payPass_box_t{
    margin-top: 100rpx;
}
.payPass_box_m{
    margin-top: 80rpx;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.payPass_box_m_in{
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 10;
}
.payPass_box_m_in_in{
    width: 70rpx;
    height: 70rpx;
    border:4rpx #bfbfbf solid;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right:8rpx; 
}
.indexTopInput{
    position: absolute;
    height: 100%;
    background: #000;
    opacity: 0.5;
    z-index: 2;
    left: 0rpx;
    background: red;
    left: -150%;
}
.indexTopInput input{
    width: 100%;
    height: 100%;
}
.qiueBtn{
    position: absolute;
    right: 20rpx;
    top: 10rpx;
    width: 80rpx;
    height: 60rpx;
    text-align: right;
    color: #999
}

模板写法的js

传入data数据

passObj:{
      focusF:['1'] //第一个焦点获取,
      inputArr:[]//六位密码的数组,
      inputStr:""//六位密码,
      allinputF1:false//是否显示当前的六位密码框,

    },

下面的 JS思路写法与组件一致就不在CTRL+C=>V了,各位大佬应该都看得懂。

感谢各位有闲情看完此篇博客,不足之处还望指点~!




推荐阅读
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • 本文详细介绍了 HTML 中 a 标签的 href 属性的多种用法,包括实现超链接、锚点以及调用 JavaScript 方法。通过具体的示例和解释,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • Ext JS MVC系列一:环境搭建与框架概览
    本文主要介绍了如何在项目中使用Ext JS 4作为前端框架,并详细讲解了Ext JS 4的MVC开发模式。文章将从项目目录结构、相关CSS和JS文件的引用以及MVC框架的整体认识三个方面进行总结。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • C#中实现高效UDP数据传输技术
    C#中实现高效UDP数据传输技术 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • Manacher算法详解:寻找最长回文子串
    本文将详细介绍Manacher算法,该算法用于高效地找到字符串中的最长回文子串。通过在字符间插入特殊符号,Manacher算法能够同时处理奇数和偶数长度的回文子串问题。 ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • jQuery插件验证与屏幕键盘功能的集成解决方案
    本文介绍了一种集成了验证功能和屏幕键盘的jQuery插件解决方案。该插件不仅提供了强大的表单验证功能,还引入了一个高度可定制的屏幕键盘,以增强用户体验。通过这一集成方案,开发者可以轻松实现复杂的表单验证逻辑,并为用户提供便捷的输入方式,特别适用于移动设备或特殊输入场景。 ... [详细]
  • 深入解析 Android 选择器与形状绘制技术
    本文深入探讨了 Android 中选择器(Selector)与形状绘制(Shape Drawing)技术的应用与实现。重点分析了 `Selector` 的 `item` 元素,其中包括 `android:drawable` 属性的使用方法及其在不同状态下的表现。此外,还详细介绍了如何通过 XML 定义复杂的形状和渐变效果,以提升 UI 设计的灵活性和美观性。 ... [详细]
  • 在Ubuntu系统中,由于预装了MySQL,因此无需额外安装。通过命令行登录MySQL时,可使用 `mysql -u root -p` 命令,并按提示输入密码。常见问题包括:1. 错误 1045 (28000):访问被拒绝,这通常是由于用户名或密码错误导致。为确保顺利连接,建议检查MySQL服务是否已启动,并确认用户名和密码的正确性。此外,还可以通过配置文件调整权限设置,以增强安全性。 ... [详细]
author-avatar
a734839433
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有