微信小程序实现自定义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 相关文章推荐
js removeChild 障眼法 可能出现的错误
Oct 06 Javascript
基于jquery的不规则矩形的排列实现代码
Apr 16 Javascript
cookie中的path与domain属性详解
Dec 18 Javascript
EasyUI为Numberbox添加blur事件的方法
Mar 05 Javascript
微信小程序实现带刻度尺滑块功能
Mar 29 Javascript
js CSS3实现卡牌旋转切换效果
Jul 04 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
Dec 11 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
Sep 18 Javascript
VUEX-action可以修改state吗
Nov 19 Javascript
vuex入门最详细整理
Mar 04 Javascript
小程序表单认证布局及验证详解
Jun 19 Javascript
react中的DOM操作实现
Jun 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 xml实例 留言本
2009/03/20 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
2013/01/22 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
微信小程序收藏功能的实现代码
2020/06/19 Javascript
Python中的元类编程入门指引
2015/04/15 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
python生成ppt的方法
2018/06/07 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
中班开学寄语
2014/04/04 职场文书
保护动物倡议书
2014/04/15 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
网吧温馨提示
2015/07/17 职场文书
毕业典礼致辞
2015/07/29 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
决心书格式及范文
2019/06/24 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
php去除数组中为0的元素的实例分析
2021/11/17 PHP
Python借助with语句实现代码段只执行有限次
2022/03/23 Python