微信小程序实现点击空白隐藏的方法示例


Posted in Javascript onAugust 13, 2019

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

先上效果图:

微信小程序实现点击空白隐藏的方法示例
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 相关文章推荐
基于jQuery的弹出消息插件 DivAlert之旅(一)
Apr 01 Javascript
jQuery中读取json文件示例代码
May 10 Javascript
JS中自定义定时器让它在某一时刻执行
Sep 02 Javascript
JS实现自定义简单网页软键盘效果代码
Nov 05 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
Jan 27 Javascript
javascript实现滚动效果的数字时钟实例
Jul 21 Javascript
最棒的Angular2表格控件
Aug 10 Javascript
JavaScript数组和对象的复制
Mar 21 Javascript
Angularjs 事件指令详细整理
Jul 27 Javascript
浅谈Vue.use的使用
Aug 29 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 Javascript
详解Vue demo实现商品列表的展示
May 07 Javascript
微信小程序使用npm包的方法步骤
Aug 13 #Javascript
Vue中的transition封装组件的实现方法
Aug 13 #Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
Aug 12 #Javascript
详解json串反转义(消除反斜杠)
Aug 12 #Javascript
json 带斜杠时如何解析的实现
Aug 12 #Javascript
electron实现静默打印的示例代码
Aug 12 #Javascript
微信小程序 弹窗输入组件的实现解析
Aug 12 #Javascript
You might like
德劲1103二次变频版的打磨
2021/03/02 无线电
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
关于PHP开发的9条建议
2015/07/27 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
React快速入门教程
2017/01/17 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
SQLite3中文编码 Python的实现
2017/01/11 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python用字典构建多级菜单功能
2019/07/11 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
抽象类和接口的区别
2012/09/19 面试题
教师求职自荐信
2014/03/09 职场文书
禁止酒驾标语
2014/06/25 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python