微信小程序实现自定义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 相关文章推荐
学习YUI.Ext基础第一天
Mar 10 Javascript
Javascript倒计时代码
Aug 12 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
Dec 01 Javascript
Javascript添加监听与删除监听用法详解
Dec 19 Javascript
JavaScript中pop()方法的使用教程
Jun 09 Javascript
jquery中object对象循环遍历的方法
Dec 18 Javascript
JavaScript面试题大全(推荐)
Sep 22 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
Mar 02 Javascript
Angularjs Promise实例详解
Mar 15 Javascript
vue.js中导出Excel表格的案例分析
Jun 11 Javascript
JS内置对象和Math对象知识点详解
Apr 03 Javascript
小程序选项卡以及swiper套用(跨页面)
Jun 19 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
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
PHP 输出简单动态WAP页面
2009/06/09 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
JS模拟自动点击的简单实例
2013/08/08 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
js自定义input文件上传样式
2018/10/26 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
初步讲解Python中的元组概念
2015/05/21 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
机关道德讲堂实施方案
2014/03/15 职场文书
我的求职择业计划书
2014/04/04 职场文书
车辆转让协议书
2014/04/15 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
Python采集壁纸并实现炫轮播
2022/04/30 Python