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


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 相关文章推荐
Lazy Load 延迟加载图片的jQuery插件中文使用文档
Oct 18 Javascript
js转义字符介绍
Nov 05 Javascript
讨论html与javascript在浏览器中的加载顺序问题
Nov 27 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
May 19 Javascript
jquery+php实现滚动的数字特效
Nov 29 Javascript
jquery ztree实现模糊搜索功能
Feb 25 Javascript
基于javascript实现九九乘法表
Mar 27 Javascript
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
Vue2.0中集成UEditor富文本编辑器的方法
Mar 03 Javascript
详解Vue SPA项目优化小记
Jul 03 Javascript
百度小程序之间的页面通信过程详解
Jul 18 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 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
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
php-msf源码详解
2017/12/25 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
Js 中debug方式
2010/02/07 Javascript
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
python检测远程端口是否打开的方法
2015/03/14 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
python实现的Iou与Giou代码
2020/01/18 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
车贷收入证明范本
2014/01/09 职场文书
医校毕业生自我鉴定
2014/01/25 职场文书
高三学习决心书
2014/03/11 职场文书
奥林匹克的口号
2014/06/13 职场文书
委托书格式
2014/08/01 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
党校学习党性分析材料
2014/12/19 职场文书
导师对论文的学术评语
2015/01/04 职场文书
庆祝教师节主持词
2015/07/06 职场文书