注:本文是基于手机端 Hybrid APP 讨论,而不是普通的PC端网页 >>

之前的页面跳转方式:

比如有这两个页面:A.html  B.html,  A B 是纯HTML实现,没有采用其他UI框架

A-->B 的跳转方式为 location.href="B.html";

效果:闪屏刷新,用户体验太差

目前的实现方式:

定义一个母页面里面包含两个iframe用来加载A、B等html页面: _ghost.html:

html:

js:

母页面初始化的时候获取手机屏幕宽高度给iframe,并且给第一个iframe设置内容

页面切换方法:

页面切换即显示或隐藏两个iframe,这里引用jqm里面的changPage方法来实现页面平滑切换,当然是用其他方式也可以实现,比如用jquery的animation动画效果,下述问题与这里是否采用jqm无关,已验证

至此,页面的平滑切换效果实现好了!

细节问题(未解决):

A.html页面有绑定一个系统返回键的事件,在A.js里面定义

document.addEventListener("backbutton", eventBackButton, false); // backbutton事件是cordova.js框架提供的

function eventBackButton() {
MyApp.showFloatMsg('再按一次退出程序.');

。。。

}

所以在A.html第一次加载到iframe里面之后点击返回键会提示“再按一次退出程序”,到这一步是正常的

-----------------------------分割,下面问题出现-------------------------------

从A.html --> B.html (通过上述changePage方法),到了B.html点击返回键,没有效果,返回事件失效

当然如果在A-->B 的时候  把backbutton事件移除,则到了B.html点击返回键,可以正常返回到A.html,但是A.js未执行,而且在A.html上继续点返回键又回到B.html,接着如果继续按返回键,则:-->A-->退出

-----------------------------分割,说明----------------------------------------

以上的修改都是尽最大可能不修改A.html  A.js  B.html B.js的内容为前提,因为类似AB 大概有1百多个页面

--------------------------------------20160120更新------------------------------------------

今天第一次用mui在开发demo的时候,突然发现mui采用的是类似的方案,真实欣喜若狂,看这:

http://dev.dcloud.net.cn/mui/window/#openwindow

后续有时间,用这个方案实现下,good!

html5页面平滑切换实现以及问题(20160120更新)的更多相关文章

  1. centos 下 yum 安装 nginx 平滑切换安装到 Tengine

    ---恢复内容开始--- 据说淘宝的Tengine很牛X,所以我们今天也来玩玩,我们这里是某开放云的vps,现在已经安装好了nginx,现在我们要平滑切换到安装Tengine. 下载Tengine,解 ...

  2. ViewPager+Fragment实现页面的切换

    新知识,新摘要: 效果图:framgent导入包都是v4包下,谨慎导入错误! 首先设置viewPager布局: <?xml version="1.0" encoding=&q ...

  3. 基于html5页面滚动背景图片动画效果

    基于html5页面滚动背景图片动画效果是一款带索引按钮的页面滚动动画特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="fullpage&q ...

  4. HTML5 页面制作工具

    https://www.zhihu.com/question/30087283 HTML5 页面制作工具 免费的基于 HTML 5 的 Web Apps 生成器工具网站     81 235 初页 制 ...

  5. ViewPager和View组合 实现页面的切换

    //--------------主页面------------------------------- package com.bw.test; import java.util.ArrayList;i ...

  6. selenium多个标签页的切换(弹出新页面的切换)

    1_windows = driver.current_window_handle #定位当前页面句柄 all_handles = driver.window_handles #获取全部页面句柄 for ...

  7. js判断当前浏览器页面是否切换

    公司做mifi设备,ui界面很多信息需要1S钟不断异步请求更新信息,如果同时打开多个浏览器或者多个当前界面,设备1S钟会收到很多个请求,由于设备本身内存限制,会导致响应速度过慢,且会造成设备重启等. ...

  8. 微信HTML5页面设计建议

    一个HTML5页面从提出到完成上线的流程:>   1.需求方.设计人员.H5实现人员三方共同讨论实现方案 2.设计人员出设计图 3.H5人员按设计图出H5页面 4.需求方评估已实现的H5页面后给 ...

  9. html5页面与android页面之间通过url传递参数

    html5页面与android页面之间可以通过url传递参数,android将参数放在htm5的url  ?后面,js获取url  ?号后面的参数. 方法一: <scrīpt> /* 用途 ...

随机推荐

  1. 如何检查CentOS服务器受到DDOS攻击

    登录到你的服务器以root用户执行下面的命令,使用它你可以检查你的服务器是在DDOS攻击与否: netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | c ...

  2. js 空数组是true还是false

    var arr = new Array(); // 或 var arr = []; 我们知道,初始化后,即使数组arr中没有元素,也是一个object. typeof arr; // "ob ...

  3. Graph-BFS-图的广度优先遍历

    #include <iostream> #include <queue> using namespace std; /* 5 5 1 2 1 3 1 5 2 4 3 5 1 2 ...

  4. TiKV 源码解析系列——如何使用 Raft

    本系列文章主要面向 TiKV 社区开发者,重点介绍 TiKV 的系统架构,源码结构,流程解析.目的是使得开发者阅读之后,能对 TiKV 项目有一个初步了解,更好的参与进入 TiKV 的开发中. 需要注 ...

  5. js学习(一)-动态添加、修改、删除对象的属性和方法

    //-----------------------js代码--------------------------- function class1(){ } //-------------------- ...

  6. onClickRow 事件

    onClickRow: function (rowIndex, rowData) {                        dgonClickRow(rowData.oldCityCode,r ...

  7. I/O模型(同步、非同步、阻塞、非阻塞)总结

    I/O:同步(synchronous).异步(asynchronous).阻塞(blocking).非阻塞(nonblocking) 1.I/O内部机制 出于安全考虑,用户程序(用户态)是没办法直接操 ...

  8. Caused by:java.lang.IllegalStateException at android.media.MediaPlayer._setDataSource(Native Method)

    使用Mediaplayer播放本地音频,在第二次调用mediaplayer.setDataSource()时报错如下: Caused by: java.lang.IllegalStateExcepti ...

  9. WEB打印(jsp版)

    <%@ page contentType="text/html; charset=UTF-8" language="java"%> <%@in ...

  10. e867. 获取和设置外观

    To change the look and feel, you need to know the class name of the new look and feel. This example ...