微信小程序商品详情页底部弹出框


Posted in Javascript onNovember 22, 2019

电商项目中商品详情页,加入购物车或者下单时可以选择商品属性的弹出框,通过设置view的平移动画,达到从底部弹出的样式

1.js代码(一般情况下只调用显示对话框的函数,当点击对话框外部的时候,对话框可以消失)

//显示对话框
 showModal: function () {
 // 显示遮罩层
 var animation = wx.createAnimation({
  duration: 200,
  timingFunction: "linear",
  delay: 0
 })
 this.animation = animation
 animation.translateY(300).step()
 this.setData({
  animationData: animation.export(),
  showModalStatus: true
 })
 setTimeout(function () {
  animation.translateY(0).step()
  this.setData({
  animationData: animation.export()
  })
 }.bind(this), 200)
 },
 //隐藏对话框
 hideModal: function () {
 // 隐藏遮罩层
 var animation = wx.createAnimation({
  duration: 200,
  timingFunction: "linear",
  delay: 0
 })
 this.animation = animation
 animation.translateY(300).step()
 this.setData({
  animationData: animation.export(),
 })
 setTimeout(function () {
  animation.translateY(0).step()
  this.setData({
  animationData: animation.export(),
  showModalStatus: false
  })
 }.bind(this), 200)
 }

2.wxss代码

/*使屏幕变暗 */
.commodity_screen {
 width: 100%;
 height: 100%;
 position: fixed;
 top: 0;
 left: 0;
 background: #000;
 opacity: 0.2;
 overflow: hidden;
 z-index: 1000;
 color: #fff;
}
/*对话框 */
.commodity_attr_box {
 height: 300rpx;
 width: 100%;
 overflow: hidden;
 position: fixed;
 bottom: 0;
 left: 0;
 z-index: 2000;
 background: #fff;
 padding-top: 20rpx;
}

3.wxml代码 (其中的showModalStatus变量要现在js代码中的data对象中初始化,初始化为false,因为最初的时候对话框并没有显示)

<!--屏幕背景变暗的背景 -->
 <view class="commodity_screen" bindtap="hideModal" wx:if="{{showModalStatus}}"></view>
 <!--弹出框 -->
 <view animation="{{animationData}}" class="commodity_attr_box" wx:if="{{showModalStatus}}">在这里写弹出框里面的布局</view>

4.设置点击事件,给目标view设置点击函数showModal()或者hideModal()

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js FLASH幻灯片字符串中有连接符&的处理方法
Mar 01 Javascript
Javascript Request获取请求参数如何实现
Nov 28 Javascript
Android中资源文件(非代码部分)的使用概览
Dec 18 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
Apr 25 Javascript
深入分析jsonp协议原理
Sep 26 Javascript
一分钟理解js闭包
May 04 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
Jan 12 Javascript
关于前后端json数据的发送与接收详解
Jul 30 Javascript
解决ie img标签内存泄漏的问题
Oct 13 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
React props和state属性的具体使用方法
Apr 12 Javascript
解决layui table表单提示数据接口请求异常的问题
Sep 24 Javascript
小程序实现图片预览裁剪插件
Nov 22 #Javascript
Vue数据双向绑定底层实现原理
Nov 22 #Javascript
Node如何后台数据库使用增删改查功能
Nov 21 #Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
Nov 21 #Javascript
微信小程序动态设置图片大小的方法
Nov 21 #Javascript
通过原生vue添加滚动加载更多功能
Nov 21 #Javascript
小程序api实现promise封装过程解析
Nov 21 #Javascript
You might like
简单谈谈PHP中的trait
2017/02/25 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
Python的requests网络编程包使用教程
2016/07/11 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
python3 线性回归验证方法
2019/07/09 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
python 制作磁力搜索工具
2021/03/04 Python
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
公司人力资源的自我评价
2014/01/02 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
英语道歉信范文
2014/01/09 职场文书
索桥的故事教学反思
2014/02/06 职场文书
户外拓展活动方案
2014/02/11 职场文书
大学军训感言200字
2014/02/26 职场文书
公司保洁员管理制度
2015/08/04 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
建立共青团委员会的请示
2019/04/02 职场文书