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


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 相关文章推荐
用函数式编程技术编写优美的 JavaScript
Nov 25 Javascript
Js中获取frames中的元素示例代码
Jul 30 Javascript
jQuery制作可自定义大小的拼图游戏
Mar 30 Javascript
关于JSON与JSONP简单总结
Aug 16 Javascript
BootStrap tab选项卡使用小结
Aug 09 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
使用Require.js封装原生js轮播图的实现代码
Jun 15 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
Oct 25 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
JavaScript日期工具类DateUtils定义与用法示例
Sep 03 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
Sep 23 Javascript
聊聊JS ES6中的解构
Apr 29 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
PHP批量生成缩略图的代码
2008/07/19 PHP
PHP 编程的 5个良好习惯
2009/02/20 PHP
php全排列递归算法代码
2012/10/09 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
js获得页面的高度和宽度的方法
2014/02/23 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
js制作提示框插件
2020/12/24 Javascript
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
python skimage 连通性区域检测方法
2018/06/21 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
试述DBMS的主要功能
2016/11/13 面试题
人事部专员岗位职责
2014/03/04 职场文书
房屋公证委托书
2014/04/03 职场文书
小学语文业务学习材料
2014/06/02 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android