微信小程序实现自定义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 相关文章推荐
TextArea 控件的最大长度问题(js json)
Dec 16 Javascript
JavaScript window.document的属性、方法和事件小结
Oct 24 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
Oct 31 Javascript
Javascript writable特性介绍
Feb 27 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
JS组件Bootstrap实现图片轮播效果
May 16 Javascript
微信小程序 数据访问实例详解
Oct 08 Javascript
实例详解Node.js 函数
Jun 10 Javascript
mpvue 单文件页面配置详解
Dec 02 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 Javascript
javascript实现搜索筛选功能实例代码
Nov 12 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
Zerg建筑一览
2020/03/14 星际争霸
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
js以对象为索引的关联数组
2010/07/04 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
vue生命周期与钩子函数简单示例
2019/03/13 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
Python批量修改图片分辨率的实例代码
2019/07/04 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
Django配置文件代码说明
2019/12/04 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
应届生法律求职信
2013/10/22 职场文书
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
矿泉水广告词
2014/03/20 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL