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


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 相关文章推荐
javascript 学习笔记(八)javascript对象
Apr 12 Javascript
html中table数据排序的js代码
Aug 09 Javascript
JavaScript中的Truthy和Falsy介绍
Jan 01 Javascript
jquery读取xml文件实现省市县三级联动的方法
May 29 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
Jul 07 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
Mar 02 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
Vue.js框架路由使用方法实例详解
Aug 25 Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
koa+mongoose实现简单增删改查接口的示例代码
May 13 Javascript
纯js+css实现在线时钟
Aug 18 Javascript
JavaScript实现五子棋小游戏
Oct 26 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
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
PHP中SESSION过期设置
2021/03/09 PHP
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
vue内置指令详解
2018/04/03 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
Flask框架的学习指南之用户登录管理
2016/11/20 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
Python matplotlib可视化实例解析
2020/06/01 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
python中random模块详解
2021/03/01 Python
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
班级旅游计划书
2014/05/03 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书