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


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 相关文章推荐
了解一点js的Eval函数
Jul 26 Javascript
Jquery 数组操作大全个人总结
Nov 13 Javascript
jQuery获取对象简单实现方法小结
Oct 30 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
Feb 27 Javascript
JQuery实现的按钮倒计时效果
Dec 23 Javascript
jQuery日历插件datepicker用法详解
Mar 03 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 Javascript
Vue精简版风格概述
Jan 30 Javascript
Vue波纹按钮组件制作
Apr 30 Javascript
TypeScript开发Node.js程序的方法
Apr 30 Javascript
vue下axios拦截器token刷新机制的实例代码
Jan 17 Javascript
解决vue项目,npm run build后,报路径错的问题
Aug 13 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
PHP之数组学习
2011/05/29 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
python通过函数属性实现全局变量的方法
2015/05/16 Python
Python下载懒人图库JavaScript特效
2015/05/28 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
python线程池threadpool实现篇
2018/04/27 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
Python字典对象实现原理详解
2019/07/01 Python
使用pandas读取文件的实现
2019/07/31 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
python 如何快速复制序列
2020/09/07 Python
Python Merge函数原理及用法解析
2020/09/16 Python
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
寒假实习自荐信
2014/01/26 职场文书
财务科科长岗位职责
2014/03/10 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
银行竞聘报告范文
2014/11/06 职场文书
银行先进个人总结
2015/02/15 职场文书
飞越疯人院观后感
2015/06/09 职场文书
MySQL 重写查询语句的三种策略
2021/05/10 MySQL