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


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 相关文章推荐
记录几个javascript有关的小细节
Apr 02 Javascript
jQuery的live()方法对hover事件的处理示例
Feb 27 Javascript
JavaScript基础教程之alert弹出提示框实例
Oct 16 Javascript
jQuery中noconflict函数的实现原理分解
Feb 03 Javascript
jQuery控制控件文本的长度的操作方法
Dec 05 Javascript
webpack入门必知必会
Jan 16 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
Angularjs 1.3 中的$parse实例代码
Sep 14 Javascript
微信小程序自定义键盘 内部虚拟支付
Dec 20 Javascript
JavaScript数值类型知识汇总
Nov 17 Javascript
three.js 如何制作魔方
Jul 31 Javascript
Nuxt的动态路由和参数校验操作
Nov 09 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
php5.5中类级别的常量使用介绍
2013/10/02 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
jQuery autocomplete插件修改
2009/04/17 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
详解Vue之事件处理
2020/07/10 Javascript
JavaScript仿京东轮播图效果
2021/02/25 Javascript
Python 初始化多维数组代码
2008/09/06 Python
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
Python使用gRPC传输协议教程
2018/10/16 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
Python 多线程,threading模块,创建子线程的两种方式示例
2019/09/29 Python
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
企业总经理职责
2014/02/02 职场文书
财经学院自荐信范文
2014/02/02 职场文书
趣味活动策划方案
2014/02/08 职场文书
员工入职担保书范文
2014/04/01 职场文书
搞笑爱情保证书
2014/04/29 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书