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


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 插件开发 extjs中的extend用法小结
Jan 04 Javascript
Jquery中find与each方法用法实例
Feb 04 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
Sep 27 Javascript
Angularjs实现多个页面共享数据的方式
Mar 29 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
May 24 Javascript
深入理解 JavaScript 中的 JSON
Apr 06 Javascript
JS Testing Properties 判断属性是否在对象里的方法
Oct 01 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
Oct 11 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
Sep 13 Javascript
JS闭包经典实例详解
Dec 20 Javascript
微信小程序实现横向滚动导航栏效果
Dec 12 Javascript
基于elementUI竖向表格、和并列的案例
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
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
php时间计算相关问题小结
2016/05/09 PHP
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
jQuery基础知识小结
2014/12/22 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
python mysql中in参数化说明
2020/06/05 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
好的自荐信包括什么内容
2013/11/07 职场文书
售后主管岗位职责
2013/12/08 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
妇联主席先进事迹
2014/05/18 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
市场营销工作计划书
2014/09/15 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
Python办公自动化解决world文件批量转换
2021/09/15 Python
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers