微信小程序实现自定义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 相关文章推荐
JScript中的&quot;this&quot;关键字使用方式补充材料
Mar 08 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
Mar 18 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
Jan 28 Javascript
Dojo获取下拉框的文本和值实例代码
May 27 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
Mar 29 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
Jul 19 Javascript
jQuery实现的事件绑定功能基本示例
Oct 11 jQuery
vue实现图书管理demo详解
Oct 17 Javascript
利用Vue2.x开发实现JSON树的方法
Jan 04 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
vue input输入框关键字筛选检索列表数据展示
Oct 26 Javascript
javascript实现支付宝滑块验证码效果
Jul 24 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文件上传实例详解!!!
2007/01/02 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
微信小程序版本自动更新的方法
2019/06/14 Javascript
Python编写百度贴吧的简单爬虫
2015/04/02 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
高三自我鉴定范文
2013/10/19 职场文书
奥运会口号
2014/06/13 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
植物园观后感
2015/06/11 职场文书
Python实现简繁体转换
2021/06/07 Python