微信小程序实现自定义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 相关文章推荐
jquery提示 &quot;object expected&quot;的解决方法
Dec 13 Javascript
jQuery链使用指南
Jan 20 Javascript
javascript结合Canvas 实现简易的圆形时钟
Mar 11 Javascript
跟我学习javascript的prototype使用注意事项
Nov 17 Javascript
webpack常用配置项配置文件介绍
Nov 07 Javascript
vue中的scope使用详解
Oct 29 Javascript
jQuery实现所有验证通过方可提交的表单验证
Nov 21 jQuery
浅谈对于“不用setInterval,用setTimeout”的理解
Aug 28 Javascript
浅谈小程序globalData的那些事儿
Nov 01 Javascript
js实现小球在页面规定的区域运动
Jun 16 Javascript
微信小程序实现打卡签到页面
Sep 21 Javascript
React Fragment介绍与使用详解
Nov 11 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目录导航文件代码
2006/10/09 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
php命令行用法入门实例教程
2014/10/27 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
javascript读取RSS数据
2007/01/20 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
微信跳一跳python自动代码解读1.0
2018/01/12 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
Python遍历字典方式就实例详解
2019/12/28 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
Python Map 函数的使用
2020/08/28 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
HTML5如何实现元素拖拽
2016/03/11 HTML / CSS
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
30年同学聚会邀请函
2014/01/25 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
网络舆情信息简报
2015/07/21 职场文书
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android