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


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 相关文章推荐
js 禁用只读文本框获得焦点时的退格键
Apr 25 Javascript
解决iframe的frameborder在chrome/ff/ie下的差异
Aug 12 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
Nov 02 Javascript
PHP+mysql+Highcharts生成饼状图
May 04 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
javascript 动态修改css样式方法汇总(四种方法)
Aug 27 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
Bootstrap警告(Alerts)的实现方法
Mar 22 Javascript
javascript 封装Date日期类实例详解
May 28 Javascript
解决vue数组中对象属性变化页面不渲染问题
Aug 09 Javascript
JavaScript实现随机五位数验证码
Sep 27 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
Oct 26 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 动态执行带有参数的类方法
2009/04/10 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
php动态生成版权所有信息的方法
2015/03/24 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
PHP会话处理的10个函数
2015/08/11 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
JavaScript中的私有成员
2006/09/18 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
Vue渲染函数详解
2017/09/15 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
TypeScript的安装、使用、自动编译的实现
2020/04/10 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
2018/03/13 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
简历上的自我评价
2014/02/03 职场文书
家长会主持词开场白
2014/03/18 职场文书
英文商务邀请函范文
2015/01/31 职场文书
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
python实现双链表
2022/05/25 Python