微信小程序实现自定义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 相关文章推荐
JavaScript Event学习第六章 事件的访问
Feb 07 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
JS实现两个大数(整数)相乘
Apr 28 Javascript
jQuery学习笔记之创建DOM元素
Jan 19 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
Nov 29 Javascript
Node.js中process模块常用的属性和方法
Dec 13 Javascript
前端自动化开发之Node.js的环境搭建教程
Apr 01 Javascript
Vuex简单入门
Apr 19 Javascript
Vue header组件开发详解
Jan 26 Javascript
JavaScript函数apply()和call()用法与异同分析
Aug 10 Javascript
如何理解Vue前后端数据交互与显示
May 10 Vue.js
canvas绘制折线路径动画实现
May 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
PHP5 字符串处理函数大全
2010/03/23 PHP
解析curl提交GET,POST,Cookie的简单方法
2013/06/29 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
js实现文字滚动效果
2016/03/03 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
python画图常规设置方式
2020/03/05 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
武汉英思工程科技有限公司&ndash;ORACLE面试测试题目
2012/04/30 面试题
3分钟演讲稿
2014/04/30 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
详解thinkphp的Auth类认证
2021/05/28 PHP
Django REST framework 限流功能的使用
2021/06/24 Python
JVM之方法返回地址详解
2022/02/28 Java/Android