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


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 CHECKBOX全选,取消全选,反选方法三
Aug 30 Javascript
js电信网通双线自动选择技巧
Nov 18 Javascript
document.write()及其输出内容的样式、位置控制
Aug 12 Javascript
jQuery之Deferred对象详解
Sep 04 Javascript
浅析Javascript中bind()方法的使用与实现
Apr 29 Javascript
jquery实现弹窗功能(窗口居中显示)
Feb 27 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
微信小程序之页面跳转和参数传递的实现
Sep 29 Javascript
浅析微信扫码登录原理(小结)
Oct 29 Javascript
node.js的Express服务器基本使用教程
Jan 09 Javascript
JQuery特殊效果和链式调用操作示例
May 13 jQuery
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 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
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
sphinx增量索引的一个问题
2011/06/14 PHP
php实现天干地支计算器示例
2014/03/14 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
Python元组常见操作示例
2019/02/19 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
傲盾软件面试题
2015/08/17 面试题
机械设计及其自动化专业推荐信
2013/10/31 职场文书
应届生幼儿园求职信
2013/11/12 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
小学教师节活动总结
2015/03/20 职场文书
2015年少先队活动总结
2015/03/25 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书