微信小程序实现自定义picker选择器弹窗内容


Posted in Javascript onMay 26, 2020

微信小程序中定义好的几种picker选择器,不管是日期选择器还是地区选择器,或是其他的都有定死的样式和内容。

例如:

微信小程序实现自定义picker选择器弹窗内容

但是大多数开发程序的情况下还是需要自己写样式的,或是内容的。

例如:

微信小程序实现自定义picker选择器弹窗内容

wxml

<view class="free-btns" style="margin-top: 10vh;background:none;">
 <button class="free-btn" bindtap="toggleDialog">
 选定国家:{{value}}
 </button>
 </view>

 <view class="free-dialog {{ showDialog ? 'free-dialog--show' : '' }}">
 <view class="free-dialog__mask" bindtap="toggleDialog" />
 <view class="free-dialog__container">
 <view style="padding: 5% 5% 15%;">
 <form bindsubmit='submit' bindreset="reset">
 <view bindtap='freetoBack' class="free-button free-dialog-reset">取消</view>
 <view bindtap='freeBack' class="free-button free-dialog-submit">确定</view>

 <radio-group class='free-radios' bindchange="radioChange">
 <label class="free-radio" bindtap="click" wx:for="{{items}}" wx:key="{{items}}" data-id="{{index}}" style="{{index==id?'background:#48c23d;color:#fff;':'background:#fff;color:#000;'}}">
 <radio value="{{item.name}}" name="{{item.value}}"></radio>
 <label class="free-text">{{item.value}}</label>
 </label>
 </radio-group>
 </form>

 </view>
 </view>
</view>

css

.free-dialog__mask {
 position: fixed;
 top: 0;
 left: 0;
 right: 0;
 bottom: 0;
 z-index: 10;
 background: rgba(0, 0, 0, 0.7);
 display: none;
}
.free-dialog__container {
 position: fixed;
 left: 0;
 bottom: 0;
 width: 750rpx;
 background: white;
 transform: translateY(150%);
 transition: all 0.4s ease;
 z-index: 11;
}
.free-dialog--show .free-dialog__container {
 transform: translateY(0);
}
.free-dialog--show .free-dialog__mask {
 display: block;
}
/*模态框中的内容*/
.free-button{
 display: inline-block;
 width:50px;
 text-align: center;
 font-size:20px;
 color:#707070;
 margin-bottom:20px;
}
.free-dialog-submit{
 float: right;
 color:#48c23d;
}
radio-group{
 margin:10rpx 0rpx;
}
radio-group>label{
 width:22.5%;
 display: inline-block;
 border:1px solid #ddd;
 padding:10px 0px;
 margin:0px 2px 2px;
}

radio-group label radio{
 width:100%;
 z-index: 3;
 display: none;
}
.checked{
 background:#48c23d;
 color:#fff;
}
radio-group label .free-text{
 width:100%;
 text-align: center;
 display: inline-block;
}

js

Page({
 data: {
 showDialog: false,
 items: [
 { name: '中国', value: '中国' },
 { name: '美国', value: '美国' },
 { name: '巴西', value: '巴西' },
 { name: '日本', value: '日本' },
 { name: '英国', value: '英国' },
 { name: '法国', value: '法国' },
 { name: '韩国', value: '韩国' },
 { name: '俄罗斯', value: '俄罗斯' },]

 },
 /*点击变色*/
 click:function(e){
 var id = e.currentTarget.dataset.id
 var that = this
 that.setData({
 id:id
 })
 },
 onLoad: function (options) {
 var that = this
 that.setData({
 value:'show'
 })
 },
 radioChange: function (e) {
 console.log('radio发生change事件,携带value值为:', e.detail.value)
 var that = this
 that.setData({
 value: e.detail.value
 })
 console.log(this.data.value)
 },
 toggleDialog() {
 this.setData({
 showDialog: !this.data.showDialog
 });
 },
 freeBack:function(){
 var that = this
 if(this.data.value=='show'){
 wx.showModal({
 title: '提示',
 content: '你没有选择任何内容',
 })
 }
 that.setData({
 showDialog: !this.data.showDialog
 })
 },
 freetoBack: function () {
 var that = this
 wx.showModal({
 title: '提示',
 content: '你没有选择任何内容',
 })
 that.setData({
 showDialog: !this.data.showDialog,
 value:'show',
 checked: false,
 })
 },
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
十分钟打造AutoComplete自动完成效果代码
Dec 26 Javascript
JavaScript初学者需要了解10个小技巧
Aug 25 Javascript
jQuery中实现动画效果的基本操作介绍
Apr 16 Javascript
扒一扒JavaScript 预解释
Jan 28 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
Sep 15 Javascript
jquery+正则实现统一的表单验证
Sep 20 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
Sep 21 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
Nov 05 Javascript
vue双向绑定及观察者模式详解
Mar 19 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
Jul 17 Javascript
微信小程序实现漂亮的弹窗效果
May 26 #Javascript
Angular通过指令动态添加组件问题
Jul 09 #Javascript
js实现左右两侧浮动广告
Jul 09 #Javascript
vue-router中scrollBehavior的巧妙用法
Jul 09 #Javascript
JavaScript解决浮点数计算不准确问题的方法分析
Jul 09 #Javascript
Vue自定义指令封装节流函数的方法示例
Jul 09 #Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 #Javascript
You might like
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
面包屑导航详解
2017/12/07 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
node使用request请求的方法
2019/12/20 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
廉政教育心得体会
2014/01/01 职场文书
立志成才演讲稿
2014/09/04 职场文书
爱国教育主题班会
2015/08/14 职场文书
高三语文教学反思
2016/02/16 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫