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


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 相关文章推荐
Jquery 设置标题的自动翻转
Oct 03 Javascript
jQuery Ajax之load()方法
Oct 12 Javascript
JQuery SELECT单选模拟jQuery.select.js
Nov 12 Javascript
js 三级关联菜单效果实例
Aug 13 Javascript
JS实现针对给定时间的倒计时功能示例
Apr 11 Javascript
node.js操作mysql简单实例
May 25 Javascript
纯JS实现简单的日历
Jun 26 Javascript
vue2导航根据路由传值,而改变导航内容的实例
Nov 10 Javascript
Vuex中mutations与actions的区别详解
Mar 01 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
Feb 13 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
你点的 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 intval的测试代码发现问题
2008/07/27 PHP
ThinkPHP实现支付宝接口功能实例
2014/12/02 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
php绘制一个矩形的方法
2015/01/24 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
Python常用的爬虫技巧总结
2016/03/28 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
推普周国旗下讲话稿
2014/09/21 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
七年级语文教学反思
2016/03/03 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
java中如何截取字符串最后一位
2022/07/07 Java/Android
keepalived + nginx 实现高可用方案
2022/12/24 Servers