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

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




推荐阅读
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 本文讨论了如何在不使用SearchBar display controller的情况下,单独使用SearchBar并捕获其textChange事件。作者介绍了实际状况,即左侧SliderMenu中的SearchBar需要在主页TableView中显示搜索结果。然后,作者提供了解决方案和步骤,帮助读者实现这一功能。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
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社区 版权所有