微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例


Posted in Javascript onDecember 11, 2018

本文实例讲述了微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能。分享给大家供大家参考,具体如下:

怎样实现jq中的slideUp或者slideDown这种动画效果呢,我的思路是用css3的transform: translateY() 属性,给需要动画的元素添加上一个动画class。

先上效果图:

微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例

1.蒙层的结构:

<!-- 购物车蒙层 -->
<view class='list-fix' wx:if="{{mengShow}}" bindtap='outbtn'>     <!--mengShow是蒙层是否显示的标志,然后蒙层绑定outbtn的点击事件-->
  <view class='in-list {{aniStyle?"slideup":"slidedown"}}' catchtap='inbtn'>  <!--这里的三元运算符是判断动画该执行哪一种,catchtap这个是阻止冒泡的点击事件,这个事件必须有,才能阻止冒泡 -->
    <view class='in-content'>
      <text>已选商品(1)</text>
      <text class='iconfont icon-6'>清空购物车</text>
    </view>
    <view class='cho-list' wx:for="{{chooseList}}" wx:key="">
      <view class='listName'>{{item.Cname}}</view>
      <view class='listPrice'>¥{{item.Cprice}}</view>
      <view class='opBtn'>
        <view class='com-btn cuts' >-</view>
        <view class='com-num'>{{item.Cnum}}</view>
        <view class='com-btn add' >+</view>
      </view>
    </view>
  </view>
</view>

注意:三元运算符里的slideup和slidedown一定要加上引号

2.蒙层的其它样式自己写。最主要的是slideup和slidedown的动画效果的样式:

@keyframes slidedown {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(100%);
  }
}
.slidedown {
  animation: slidedown 0.5s linear ;
}
.slideup {
  animation: slideup 0.5s linear ;
}
@keyframes slideup {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}

其它的样式:list-fix是fixed定位,而in-list是absolute定位。

需要注意的一点是:做的时候,是从Y轴100%的位置处即最底部开始运动或是从0到100%,所以要设置z-index,才能实现在底部运动起来的时候或者回到100%即底部的时候,蒙层浮在“确认下单”这整个结构的下面。即“确认下单”这整个结构的z-index要大于蒙层的z-index。

3.js

page({
  data: {
    mengShow:false,//蒙层的显示与否
   aniStyle:true,  //动画效果,默认slideup
  },
  //蒙层的显示
  showMeng:function(e){     //这是“确认下单”这整个购物车导航栏的点击事件
    this.setData({
      mengShow:true,      //蒙层显示
      aniStyle:true//设置动画效果为slideup
    })
  },
  outbtn:function(e){      //这是list-fix的点击事件,给它绑定事件,是为了实现点击其它地方隐藏蒙层的效果
    var that=this;
    this.setData({
      aniStyle:false//设置动画效果为slidedown
    })
    setTimeout(function(){    //延时设置蒙层的隐藏,这个定时器的时间,就是slidedown在css动画里设置的时间,这样就能实现slidedown动画完成后,蒙层才消失的效果。不设置定时器会导致动画效果看不见
      that.setData({
        mengShow: false
      })
    },500)
  },
  inbtn:function(e){     //这个事件必须有,就算不做什么事情也要写上去,因为这个事件是为了防止事件冒泡,导致点击in-list这里面的元素时,点击事件冒泡到list-fix触发它的slidedown事件。
    console.log("in")
  },
})

这样就能实现slidedown和slideup,点击其它地方隐藏某元素的功能了。

总结:

1.防止冒泡的点击事件:catchtap=""

2.点击父元素除子元素以外的其它地方隐藏父元素的方法:父元素绑定一个点击隐藏事件,然后子元素绑定catchtap这种能阻止冒泡的事件

3.巧用定时器设置属性值,可达到类似上面执行一个动画之后再执行另外一个动画的方法。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
javascript入门基础之私有变量
Feb 23 Javascript
js中各浏览器中鼠标按键值的差异
Apr 07 Javascript
jQuery EasyUI API 中文文档 搜索框
Sep 29 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
Jan 11 Javascript
JQuery插件开发示例代码
Nov 06 Javascript
jquery+json实现数据列表分页示例代码
Nov 15 Javascript
javascript Array 数组常用方法
Apr 05 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
Dec 12 Javascript
第一次接触神奇的前端框架vue.js
Dec 01 Javascript
JS前向后瞻正则表达式定义与用法示例
Dec 27 Javascript
electron制作仿制qq聊天界面的示例代码
Nov 26 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
May 06 Javascript
微信小程序实现两个页面传值的方法分析
Dec 11 #Javascript
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 #jQuery
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 11 #Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
Dec 11 #Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
Dec 11 #Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
Dec 11 #Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 #jQuery
You might like
php巧获服务器端信息
2006/12/06 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
关于Python的一些学习总结
2018/05/25 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
python使用requests.session模拟登录
2019/08/09 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
python圣诞树编写实例详解
2020/02/13 Python
如何用python批量调整视频声音
2020/12/22 Python
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
股东合作协议书范本
2014/04/14 职场文书
公司委托书怎么写
2014/08/02 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
应聘教师求职信范文
2015/03/20 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
一文搞懂Redis中String数据类型
2022/04/03 Redis