微信小程序实现自定义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 相关文章推荐
utf8的编码算法 转载
Dec 27 Javascript
jquery下json数组的操作实现代码
Aug 09 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
Feb 25 Javascript
ECMAScript6函数默认参数
Jun 12 Javascript
javascript框架设计之类工厂
Jun 23 Javascript
jquery+json实现数据二级联动的方法
Nov 28 Javascript
JQuery解析XML数据的几个简单实例
May 18 Javascript
简单谈谈axios中的get,post方法
Jun 25 Javascript
vue移动端实现下拉刷新
Apr 22 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
Sep 04 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
Dec 10 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
微信小程序实现漂亮的弹窗效果
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实现数组筛选奇数和偶数示例
2014/04/11 PHP
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
JsRender实用入门教程
2014/10/31 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python实现定时提取实时日志程序
2018/06/22 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
python 解决函数返回return的问题
2020/12/05 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
十一个高级MySql面试题
2014/10/06 面试题
农贸市场管理制度
2014/01/31 职场文书
护理中职生求职信范文
2014/02/24 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
社区志愿者活动方案
2014/08/18 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python