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


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
Jun 19 Javascript
jquery map方法使用示例
Apr 23 Javascript
javascript定时器完整实例
Feb 10 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
Jul 03 Javascript
Node解决简单重复问题系列之Excel内容的获取
Jan 02 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
Aug 20 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 Javascript
JavaScript实现拖拽盒子效果
Feb 06 Javascript
vue.js实现双击放大预览功能
Jun 23 Javascript
TypeScript 运行时类型检查补充工具
Sep 28 Javascript
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
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扩展图文教程
2008/12/12 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
比较时间段一与时间段二是否有交集的php函数
2011/05/31 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
php实现复制移动文件的方法
2015/07/29 PHP
PHP中常用的魔术方法
2017/04/28 PHP
用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
2007/08/15 Javascript
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
Python实现堆排序的方法详解
2016/05/03 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
法学专业应届生求职信
2013/10/16 职场文书
影视动画专业个人的自我评价
2013/12/31 职场文书
预备党员转正思想汇报
2014/01/12 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
北京奥运会口号
2014/06/21 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
Python学习之异常中的finally使用详解
2022/03/16 Python
PO模式在selenium自动化测试框架的优势
2022/03/20 Python