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


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 相关文章推荐
分享14个很酷的jQuery导航菜单插件
Apr 25 Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 Javascript
浅谈Javascript中的12种DOM节点类型
Aug 19 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
Dec 08 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
Aug 22 Javascript
基于jQuery实现的单行公告活动轮播效果
Aug 23 jQuery
Node批量爬取头条视频并保存方法
Sep 20 Javascript
基于Webpack4和React hooks搭建项目的方法
Feb 05 Javascript
使用vue中的混入mixin优化表单验证插件问题
Jul 02 Javascript
微信小程序使用echarts获取数据并生成折线图
Oct 16 Javascript
JavaScript oncopy事件用法实例解析
May 13 Javascript
Vue数组响应式操作及高阶函数使用代码详解
Aug 01 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来处理多个提交任务
2006/10/09 PHP
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
安装dbus-python的简要教程
2015/05/05 Python
使用Python对SQLite数据库操作
2017/04/06 Python
Django内容增加富文本功能的实例
2017/10/17 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
python 安装impala包步骤
2020/03/28 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
internal修饰符起什么作用
2013/12/16 面试题
优纳科技软件测试面试题
2012/05/15 面试题
路政管理专业推荐信
2013/11/11 职场文书
英语自荐信范文
2013/12/11 职场文书
机关作风建设心得体会
2014/10/22 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
死亡赔偿协议书
2015/01/28 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技