热门标签 | 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了,各位大佬应该都看得懂。

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




推荐阅读
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
author-avatar
倒霉熊丶JO_205
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有