微信小程序学习之自定义滚动弹窗


Posted in Javascript onDecember 20, 2020

微信小程序虽然有三种自带的弹窗,但是毕竟功能有限,有时候难以满足我们的需求,所以我们可以自己尝试制作自定义弹窗,话不多说,直接上图:

微信小程序学习之自定义滚动弹窗

微信小程序学习之自定义滚动弹窗

其中列表部分支持滚动,所以信息承载能力很强。

实现代码:

wxml:

<button class="showModal" bindtap="showModal_click">唤出弹窗</button>
<!--弹窗-->
<view class="modal-mask" bindtap="hideModal" catchtouchmove="preventTouchMove" wx:if="{{showModal}}"></view>
<view class="modal-dialog" wx:if="{{showModal}}">
 <view class="modal-title">标题</view>
 <view class="modal-title-sc">副标题</view>
 <view class="modal-content">
 <scroll-view scroll-y="true" style="height:100px;">
  <block wx:for="{{data}}" wx:key="id">
  <button class="info">
   <view class="name_List">{{item.name}}</view>
   <view class="quantity_List">×{{item.quantity}}</view>
   <view class="reason_List">{{item.message}}</view>
  </button>
  </block>
 </scroll-view>
 </view>
 <view class="modal-content-return">
 此处可随意添加文本内容
 </view>
 <view class="modal-footer">
 <view class="btn-cancel" bindtap="onCancel" data-status="cancel">取消</view>
 <view class="btn-confirm" bindtap="onConfirm" data-status="confirm">确定</view>
 </view>
</view>

wxss:

.showModal{
 position:absolute;
 height:50px;
 left:30%;
 width:40%;
 top:40%;
 background: rgb(95, 228, 83);
 color:#fff;
 font-size: 20px;
}
/*以下全是弹窗样式*/
.modal-mask {
 width: 100%;
 height: 100%;
 position: fixed;
 top: 0;
 left: 0;
 background: #000;
 opacity: 0.5;
 overflow: hidden;
 z-index: 9000;
 color: #fff;
}
.modal-dialog {
 width: 80%;
 overflow: hidden;
 position: fixed;
 top: 40%;
 left: 0;
 z-index: 9999;
 background: #f9f9f9;
 margin-top: -180rpx;
 margin-left: 10%;
 border-radius: 36rpx;
}
.modal-title {
 padding-top: 30rpx;
 font-size: 20px;
 color: #030303;
 text-align: center;
}
.modal-title-sc {
 padding-top: 10rpx;
 font-size: 15px;
 color: #bebcbc;
 text-align: center;
}
.modal-content {
 padding: 10rpx 32rpx;
}
.info{
 height:30px;
 left:0%;
 text-align: left;
 font-size: 12px;
 color:#bebcbc;
}
.info::after{
 border: 0px;
}
.name_List{
 position:absolute;
 left:0%;
 width:40%;
 text-align: left;
}
.quantity_List{
 position:absolute;
 left:40%;
 width:10%;
 text-align: left;
}
.reason_List{
 position:absolute;
 left:50%;
 width:50%;
 text-align: right;
 overflow: hidden;
}
.modal-content-return{
 padding: 15rpx 32rpx;
 font-size: 15px;
 color: #bebcbc;
}
.modal-footer {
 display: flex;
 flex-direction: row;
 height: 86rpx;
 border-top: 1px solid #dedede;
 font-size: 34rpx;
 line-height: 86rpx;
}
.btn-cancel {
 width: 50%;
 color: #666;
 text-align: center;
 border-right: 1px solid #dedede;
}
.btn-confirm {
 width: 50%;
 color: #ec5300;
 text-align: center;
}

js:

Page({
 data: {
  data:null,
  showModal:false
 },
 onLoad: function () {
  var data=[
   {id:1,name:"cc",quantity:2,message:"爱玩游戏"},
   {id:2,name:"ha",quantity:4,message:"爱谈恋爱"},
   {id:3,name:"lxl",quantity:6,message:"爱看电视"},
   {id:4,name:"cc",quantity:2,message:"爱玩游戏"},
   {id:5,name:"ha",quantity:4,message:"爱谈恋爱"},
   {id:6,name:"lxl",quantity:6,message:"爱看电视"},
  ]
  this.setData({
   data:data
  })
 },
 showModal_click:function(){
  this.setData({
   showModal:true
  })
 },
 //弹窗事件
 hideModal: function () {
  this.setData({
   showModal: false
  });
 },
 onCancel: function () {
  this.hideModal();
 },
 onConfirm: function () {
  this.hideModal();
 }
})

直接拿过去就可以用,data里面的内容可以动态获取

到此这篇关于微信小程序学习之自定义滚动弹窗的文章就介绍到这了,更多相关微信小程序自定义滚动弹窗内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
禁止IE用右键的JS代码
Dec 30 Javascript
jquery实现点击弹出层效果的简单实例
Mar 03 Javascript
js简单的弹出框有关闭按钮
May 05 Javascript
深入理解javascript作用域和闭包
Sep 23 Javascript
javascript无刷新评论实现方法
May 13 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
Jun 20 Javascript
javascript中if和switch,==和===详解
Jul 30 Javascript
利用jquery制作滚动到指定位置触发动画
Mar 26 Javascript
用director.js实现前端路由使用实例
Jan 27 Javascript
element-ui 设置菜单栏展开的方法
Aug 22 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
Aug 30 Javascript
关于React Native使用axios进行网络请求的方法
Aug 02 Javascript
JavaScript中arguments的使用方法详解
Dec 20 #Javascript
vue 在单页面应用里使用二级套嵌路由
Dec 19 #Vue.js
vue中如何添加百度统计代码
Dec 19 #Vue.js
vue 导航守卫和axios拦截器有哪些区别
Dec 19 #Vue.js
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
Dec 19 #Vue.js
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 #Vue.js
Vue——前端生成二维码的示例
Dec 19 #Vue.js
You might like
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
python学习之面向对象【入门初级篇】
2017/01/21 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python提取频域特征知识点浅析
2019/03/04 Python
wxpython绘制音频效果
2019/11/18 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
python实现飞行棋游戏
2020/02/05 Python
pandas数据处理之绘图的实现
2020/06/15 Python
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
大学生工作自荐书
2014/06/16 职场文书
个性车贴标语
2014/06/24 职场文书
学校德育工作总结2015
2015/05/11 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
win sever 2022如何占用操作主机角色
2022/06/25 Servers