微信小程序实现自定义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 相关文章推荐
use jscript Create a SQL Server database
Jun 16 Javascript
JS+css 图片自动缩放自适应大小
Aug 08 Javascript
JavaScript中获取鼠标位置相关属性总结
Oct 11 Javascript
基于jQuery实现仿51job城市选择功能实例代码
Mar 02 Javascript
简单实现jQuery进度条轮播实例代码
Jun 20 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
Dec 13 Javascript
JS重载实现方法分析
Dec 16 Javascript
javascript数据结构中栈的应用之符号平衡问题
Apr 11 Javascript
angularjs指令之绑定策略(@、=、&amp;)
Apr 13 Javascript
webpack external模块的具体使用
Mar 10 Javascript
vue Element左侧无限级菜单实现
Jun 10 Javascript
JavaScript实现筛选数组
Mar 02 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源码之 ext/mysql扩展部分
2009/07/17 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
js 字符串操作函数
2009/07/25 Javascript
ASP Json Parser修正版
2009/12/06 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
Angular6新特性之Angular Material
2018/12/28 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python从入门到精通(DAY 2)
2015/12/20 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
numba提升python运行速度的实例方法
2021/01/25 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
自荐信不宜过于夸大
2013/11/06 职场文书
客户接待方案
2014/02/26 职场文书
教学改革实施方案
2014/03/31 职场文书
消防工作实施方案
2014/06/09 职场文书
公司领导班子对照材料
2014/08/18 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书