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


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中indexof的用法详细解析
Dec 24 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
node.js回调函数之阻塞调用与非阻塞调用
Nov 13 Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 Javascript
AngularJs  E2E Testing 详解
Sep 02 Javascript
bootstrap基础知识学习笔记
Nov 02 Javascript
一个例子轻松学会Vue.js
Jan 02 Javascript
在node中如何使用 ES6
Apr 22 Javascript
详解从买域名到使用pm2部署node.js项目全过程
Mar 07 Javascript
webpack项目轻松混用css module的方法
Jun 12 Javascript
浅析Vue项目中使用keep-Alive步骤
Jul 27 Javascript
实例详解vue中的$root和$parent
Apr 29 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 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
让textarea自动调整大小的js代码
2011/04/12 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
个人职业生涯规划书1500字
2013/12/31 职场文书
温馨提示标语
2014/06/26 职场文书
镇创先争优活动总结
2014/08/28 职场文书
工作收入证明模板
2014/10/10 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
中英文求职信范文
2015/03/19 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书