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


Posted in Javascript onNovember 16, 2020

电商项目中商品详情页,加入购物车或者下单时可以选择商品属性的弹出框,通过设置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 相关文章推荐
非常有用的40款jQuery 插件推荐(系列二)
Dec 25 Javascript
页面回到顶部的三种实现(锚标记,js)
Oct 01 Javascript
js完美解决IE6不支持position:fixed的bug
Apr 24 Javascript
深入理解JavaScript程序中内存泄漏
Mar 17 Javascript
通过javascript进行UTF-8编码的实现方法
Jun 27 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
微信小程序  checkbox组件详解及简单实例
Jan 10 Javascript
Vue非父子组件通信详解
Jun 12 Javascript
React Router v4 入坑指南(小结)
Apr 08 Javascript
修改vue源码实现动态路由缓存的方法
Jan 21 Javascript
浅谈JSON5解决了JSON的两大痛点
Dec 14 Javascript
js实现头像上传并且可预览提交
Dec 25 Javascript
你点的 ES6一些小技巧,请查收
Apr 25 #Javascript
vue 组件使用中的一些细节点
Apr 25 #Javascript
Vue中使用vue-i18插件实现多语言切换功能
Apr 25 #Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
Apr 25 #Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 #Javascript
vue短信验证性能优化如何写入localstorage中
Apr 25 #Javascript
详解Vue.js中.native修饰符
Apr 24 #Javascript
You might like
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
php常用的url处理函数总结
2014/11/19 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
JavaScript中的私有成员
2006/09/18 Javascript
心扬JS分页函数代码
2010/09/10 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
Python中AND、OR的一个使用小技巧
2015/02/18 Python
用Python的Django框架完成视频处理任务的教程
2015/04/02 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
Python shelve模块实现解析
2019/08/28 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
经济学博士求职自荐信范文
2013/11/23 职场文书
管理信息系学生的自我评价
2014/01/11 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
2015教师年度考核评语
2015/03/25 职场文书
Python Pandas 删除列操作
2022/03/16 Python