小伙伴们是不是经常在手机上见到“转场"的情况,手机上的页面转换已经不像pc上整体的页面跳转,很多都是利用动画平滑地在页面之间的切换。

 
那么如何来做页面之间的转换呢?首先要明确的是,所谓的页面之间的切换其实是单页里面元素的切换。比如如 下图所示,中间center部分就是当前在视口区域的,也就是我们能看到的,而两边的就是我们现在看不到,但是随时待命的区域。
切换的思路很简单:就是利用CSS的动画效果,左右切换元素,让用户只能看到中间可视区域的内容。所以思路就是:
(1)把需要切换到可视区域的部分放在动画的起始位置
(2)利用CSS3的动画,开始滑动
(3)滑动到指定的位置
当然在实现中,开启利用CSS3的translate3d 开启硬件加速,可以提升页面的性能,就是要耗一点电而已。
CSS代码如下:
 
.page{
position:absolute;
left:0;
top:0;
width:100%;
height:100%;
-webkit-transform: translate3d(0,0,0);
transform:translate3d(0,0,0);
}
.page.left{
-webkit-transform: translate3d(-100%,0,0);
transform:translate3d(-100%,0,0);
}
.page.right{
-webkit-transform: translate3d(100%,0,0);
transform:translate3d(100%,0,0);
}
.page.center{
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0)
}
.page.transition{
-webkit-transition-duration: 0.25s;
transition-duration:.25s;
}

  

OK,动画效果好了,接下来就是JS配合让转场转起来了。
//设置右边元素的起始位置  
rightPage.className = "page right";
//右边元素移动到中间,中间元素移动到左边
rightPage.className = "page transtion center";
centerPage.className = "page transtion left";
 
当然在实际的操作中,关于页面的转换会比较复杂。比如,在点击了某区域以后,发生移动等;也可能不是整个页面的移动,而只是一部分的移动。部分移动的时候,只需要把.page.left里面的-100%改为需要的尺寸,比如-50%,即往左移动一半,就能做出常见的页面左右滑动一半的效果。
 
福利:
关于页面的切换转场,pageSlider.js是一个微型的页面切换的模块:https://github.com/ccoenraets/PageSlider/blob/master/pageslider.js
其中只有两个功能,slidePage函数功能:可以自动的根据页面的历史状态选择不同的方向切换页面;slidePageFrom函数功能,根据传递的移动方向来切换页面。这是一个非常适合单页app应用切换的微型JS。

手机上的页面转换page slider的更多相关文章

  1. 调试手机上网页 (断点 console timeline 选择dom)

    用手机看网页,越来越多,手机app套个webview的也很多,那该如何调试手机上的页面了?比如 断点,选dom,console,控制台输出,查看内存,== 嗯,万能的的chrome和safari还是帮 ...

  2. flexible.js在华某为手机上使用rem时,页面宽度超出手机屏幕宽度

    问题:手机端项目在华为的某款手机上显示时页面内容没有自适应手机宽度,出现横向滚动条 原因:手机获取手机屏幕宽度并计算出rem时出现偏差,明显宽余真实手机屏宽度 解决方案一:在页面里获取页面最外层dom ...

  3. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

  4. MUI框架开发HTML5手机APP(二)--页面跳转传值&底部选项卡切换

      概 述 JRedu 在上一篇博客中,我们学习了如何使用Hbuilder创建一个APP,同时如何使用MUI搭建属于自己的第一款APP,没有学习的同学可以戳链接学习: http://www.cnblo ...

  5. 利用exif.js解决ios或Android手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  6. html页面转换成pdf

    一般页面都是.jsp页面,所以要把.jsp转换成html,在生成pdf,在网上找了好多方法,只有用一个插件,wkhtmltopdf-0.8.3.exe,生成的pdf会相对的好看. 先附上我做的.jsp ...

  7. webstorm实现手机预览页面

    效果:在webstorm中开发页面,复制该页面在电脑中的浏览网址,发给手机,在手机上点击链接,可以直接访问本地开发的页面.并且,电脑上修改后保存,手机上刷新即可看到效果. 步骤: 1.webstorm ...

  8. Xamarin.Forms listview中的button按钮,实现带着参数返回上一级页面

    今天在做列表显示的时候遇到一个问题,就是在ListView中如何才能让一个button的按钮工作并且包含参数呢? 其实有点类似于rep里的控件无法起获取一样.在Xamarin中,当你button绑定事 ...

  9. asp.net中的窗口弹出实现,包括分支窗口 . ASP.NET返回上一页面实现方法总结 .

    返回上一页的这个东东在我们做项目的时候一般是用于填写完表单后确认的时候,有对原来输入的数据进行修改或者更新时用的,或者是因为网站为了方便浏览者而有心添加的一个东东,一般这种功能的实现在ASP.NET中 ...

随机推荐

  1. 多个$(document).ready()函数的执行顺序问题,(未解决)

    今天遇到了一个问题: jQuery获取不了动态添加的元素,我使用的是append添加的.寻求了帮助,得到解决方案: 在文件开头写上这样一段代码来获取,写在$(document).ready()里面. ...

  2. DNS常用命令

    ipconfig/ifconfig    显示网络信息 nslookup host    查询域名对应的ip同时也显示了网关地址 cat /etc/resolv.conf    查看本地dns服务器地 ...

  3. Xamarin.iOS编译出错

    Xamarin.iOS编译出错 错误信息:C:/Program Files(x86)/Reference Assemblies/Microsoft/Framework/Xamarin.iOS/v1.0 ...

  4. blade快速使用指南

    一.简介模板引擎 模板引擎是将网站的页面设计和PHP应用程序几乎完全分离的一种解决方案,它能让前端工程师专注页面搭建,让后台工程师专注功能实现,以便实现逻辑分离,让每个人发挥所长.模板引擎技术的核心是 ...

  5. 表格边框css

    table标签默认是没有边框的,但是如果我们自己加上边框boder:1px solid black;只有整个表格最外面有边框,那么如何给表格添加样式使得整个表格的tr.td都具有边框呢: <st ...

  6. iOS __strong __weak @Strongify @Weakify

    @Strongify,@Weakify主要是在block中使用. 因为block一般都在对象内部声明.. 如果在block内部使用了当前对象的属性,就会造成循环引用(block拥有当前对象的地址,而当 ...

  7. POJ3680 Intervals(最小费用最大流)

    选择若干条线段使权值最大,并且点覆盖次数不超过k. 建图如下:vs到0建立容量为k费用为0的边:坐标终点到vt连接一条容量为k费用为0的边:对于每两个相邻坐标连接一条容量为INF费用为0的边:对于线段 ...

  8. WPF [调用线程无法访问此对象,因为另一个线程拥有该对象。] 解决方案以及如何实现字体颜色的渐变

    本文说明WPF [调用线程无法访问此对象,因为另一个线程拥有该对象.] 解决方案以及如何实现字体颜色的渐变 先来看看C#中Timer的简单说明,你想必猜到实现需要用到Timer的相关知识了吧. C# ...

  9. data.table包

    data.table 1.生成一个data.table对象 生成一个data.table对象,记为DT. library(data.table) :],V3=round(rnorm(),),V4=:) ...

  10. BZOJ3161 : 孤舟蓑笠翁

    显然求出每个点到所有关键点的最短路和次短路即可,答案就是每个关键点的次短路. 设$f[i][j][0]$表示左手在$i$,右手在$j$的解,$f[i][j][1]$表示左手在$i$,右手在$j$,且左 ...