微信小程序实现自定义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 相关文章推荐
ArrayList类(增强版)
Apr 04 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
Nov 27 Javascript
jQuery之字体大小的设置方法
Feb 27 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
Mar 12 Javascript
通过jquery 获取URL参数并进行转码
Aug 18 Javascript
jquery实现的用户注册表单提示操作效果代码分享
Aug 28 Javascript
JS实现日期时间动态显示的方法
Dec 07 Javascript
javascript运算符——位运算符全面介绍
Jul 14 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
Oct 13 Javascript
基于iScroll实现下拉刷新和上滑加载效果
Jul 18 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
使用canvas实现一个vue弹幕组件功能
Nov 30 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 获取mysql数据库信息代码
2009/03/12 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
PHP实现数组递归转义的方法
2014/08/28 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
jQuery 获取URL参数的插件
2010/03/04 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
numpy返回array中元素的index方法
2018/06/27 Python
python使用rpc框架gRPC的方法
2018/08/24 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
工厂会计员职责
2014/02/06 职场文书
世界环境日活动总结
2015/02/11 职场文书
大学生英文求职信范文
2015/03/19 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
施工安全责任协议书
2016/03/23 职场文书
检举信的写法
2019/04/10 职场文书
如何才能写好调研报告?
2019/07/03 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技