微信小程序页面缩放式侧滑效果的实现代码


Posted in Javascript onNovember 15, 2018

先给大家展示下效果图,大家感觉不错,请参考实现代码:

微信小程序页面缩放式侧滑效果的实现代码

实现原理:点击按钮,往需要动画的div中添加或移除拥有动画效果的class。

由于微信小程序中不能操作page这个根节点,所以,只有用一个div(view)来模仿page根节点。

1.结构

<view class='page {{isFix?"pageShow":"pageHide"}}' >
  <view class='header'>    
    <view class='h-toggle iconfont icon-list' bindtap='pageBtn'></view>
  </view>
</view>
<view class='r-box {{isFix?"fixShow":"fixHide"}}' bindtap='fixHide'>
  <view class='r-list' catchtap='fixStopBu'>
    <view class='rl-close' catchtap='fixClose'>
      <text class='iconfont icon-close'></text>
    </view>    
  </view>
</view>

 上面的是最主要的结构,其它的内容就不贴了。

(1)  isFix是切换动画名的状态

(2)  r-box设置了bindtap点击事件之后,r-list也设置了一个不冒泡的catchtap事件,是为了实现点击r-box的空白处时,不冒泡的效果。

2.样式

page {
 height: 100%;
 width: 100%;
}
.page {
 width: 100%;
 height: 100%;
 box-shadow: 0 0 10px rgba(26,26,26,.1);
}
.r-box {
 position: fixed;
 top: 0;
 right: 0;
 width: 100%;
 height: 100%;
}
.r-box .r-list {
 float: right;
 width: 66%;
 height: 100%;
 background: white;
}
.fixHide {
 transition: all .3s ease;
 transform: translateX(100%);
}
.fixShow {
 transition: all .3s ease;
 transform: translateX(0%);
}
.pageHide {
 transition: all .3s ease;
 transform: translateX(0) scaleY(1);
}
.pageShow {
 transition: all .3s ease;
 transform: translateX(-70%) scaleY(0.9);
}

 这些是最主要的样式:

(1)  class为page的div(view),就是模拟整个page页面,所以宽高需要设为100%。

(2)  r-box是右边侧滑的div(view)

(3)  fixHide,fixShow这是侧滑栏的动画效果。

(4)  pageHide,pageShow这是整个页面的动画效果

(5)  由于transform只能出现一次,所以当有两个即以上的动画效果时,只写在一个transform里,然后把不同的动画效果分开就行。

(6)  过渡效果的速度曲线我使用的是ease,如果用linear,在手机上会感觉很卡顿。

 3.js

Page({
  data:{
   isFix:false,//右侧列表是否显示    
  },
  // 右侧列表显示按钮
  pageBtn:function(){
   this.setData({
    isFix:true
   })
  },
  //右侧列表空白点击
  fixHide:function(){
   this.setData({
    isFix: false
   })
  },
  //右侧列表防冒泡,必须有,虽然没内容
  fixStopBu: function () {},
  //右侧列表关闭按钮
  fixClose:function(){
   this.setData({
    isFix:false
   })
  },
})

 实现的过程大致就是这样。还是挺简单的。不知道用小程序的动画api做起来会不会简单一些或者更顺畅一点,这个就看自己勤不勤了。

总结

以上所述是小编给大家介绍的微信小程序页面缩放式侧滑效果的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery live( type, fn ) 委派事件实现
Oct 11 Javascript
js window.print实现打印特定控件或内容
Sep 16 Javascript
JavaScript对内存分配及管理机制详细解析
Nov 11 Javascript
JavaScript中的立即执行函数表达式介绍
Mar 15 Javascript
深入理解jquery自定义动画animate()
May 24 Javascript
Bootstrap学习笔记之css样式设计(1)
Jun 07 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
RequireJS简易绘图程序开发
Oct 28 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
Jul 11 Javascript
Angular4 Select选择改变事件的方法
Oct 09 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 jQuery
vue实现页面切换滑动效果
Jun 29 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
Nov 15 #Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
Nov 15 #Javascript
判断iOS、Android以及PC端的示例代码
Nov 15 #Javascript
IE8中jQuery.load()加载页面不显示的原因
Nov 15 #jQuery
详解ES6 Fetch API HTTP请求实用指南
Nov 14 #Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
Nov 14 #Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 #Javascript
You might like
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
PHP中的替代语法简介
2014/08/22 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
PHP中phar包的使用教程
2017/06/14 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
JSON取值前判断
2014/12/23 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
Python登录系统界面实现详解
2019/06/25 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
家庭户外服装:Hawkshead
2017/11/02 全球购物
什么是ARP(Address Resolution Protocol)地址解析协议
2013/10/31 面试题
大学生个人求职信范文
2013/09/21 职场文书
销售类个人求职信范文
2013/09/25 职场文书
财务会计专业求职信范文
2013/12/31 职场文书
个人承诺书
2014/03/26 职场文书
大学新闻系自荐书
2014/05/31 职场文书
公司内部升职自荐信
2015/03/27 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
2015年环保局工作总结
2015/05/22 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers