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


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+CSS 图片等比缩小并垂直居中实现代码
Dec 01 Javascript
Jquery 高亮显示文本中重要的关键字
Dec 24 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
Jan 14 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
Jul 27 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
利用Vue2.x开发实现JSON树的方法
Jan 04 Javascript
webpack 静态资源集中输出的方法示例
Nov 09 Javascript
微信小程序实现单选选项卡切换效果
Jun 19 Javascript
深入了解JavaScript 防抖和节流
Sep 12 Javascript
微信小程序新闻网站详情页实例代码
Jan 10 Javascript
layui使用及简单的三级联动实现教程
Dec 01 Javascript
Vue 3自定义指令开发的相关总结
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程序占用多少内存(memory_get_usage)
2012/09/23 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
JavaScript 事件查询综合
2009/07/13 Javascript
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
AngularJS轻松实现双击排序的功能
2016/08/30 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
pycharm 使用心得(五)断点调试
2014/06/06 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
简单了解python关系(比较)运算符
2019/07/08 Python
Pytorch之Variable的用法
2019/12/31 Python
python动态规划算法实例详解
2020/11/22 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
请说出几个常用的异常类
2013/01/08 面试题
鼓励运动员的广播稿
2014/02/08 职场文书
班组长竞聘书
2014/03/31 职场文书
小学教师评语大全
2014/04/23 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
创新社会管理心得体会
2014/09/12 职场文书
群众路线专项整治工作情况报告
2014/10/28 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
竞聘书的秘诀
2019/04/02 职场文书
pytorch中[..., 0]的用法说明
2021/05/20 Python
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL