博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mobilebone.js使用笔记
阅读量:5878 次
发布时间:2019-06-19

本文共 3340 字,大约阅读时间需要 11 分钟。

mobilebone.js主要用来是网页呈现单页效果,添加类似native app的页面切换效果。原理是:当打开a链接里的页面时,不再以传统的新页面打开,而是以ajax-html的方式,将新页面的内容作为一个页面片段追加到原来页面。由于默认的缓存作用,下次打开将瞬间打开子页面。默认切换有切入切除效果。

目录结构

--  --src   核心文件    --mobilebone.js    --mobilebone.css    --mobilebone.animate.css 附加转场动画  --example           精湛示例  --docs              APIs文档  --test              UI比较挫的测试页面    index.html        测试引导    --base-slide      基本切换    --ajax-html       Ajax请求HTML测试    --ajax-json       Ajax请求JSON数据测试    --callback        回调测试    --transition      其他切换效果测试,animate.css可以关注下    --fixed-header-footer    固定的头部与底部    --form-submit     表单提交    --prevent-default Mobilebone默认行为的中断与介入    --modular-load    模块化加载测试    --backbone        与backbone组合使用演示    --complex   复杂实例,微信模拟

简单使用

代码引入

不依赖第三方插件。

建议的网页布局:

  

其中每个带有class="page"的都视为一个页面片段,默认展示第一个页面片段,即示例里的pageHome,其它子页面被隐藏。id的作用是在返回的时候正确的找到原来的页面。下面的完整例子进行讲解:

test/transition/index.html
切换动画
«返回1

淡入淡出效果

«返回2

弹入弹出效果

«返回3

翻页效果

«返回4

流入流出效果

«返回5

上移淡出效果

访问页后,我们会发现,只有id="pageHome"的div展示,也就是第一个page类。当点击li里的任意一个子链接会进入对应的页面片段,如#page1。

现在做几点总结:

mobilebone要生效,必须满足

  1. 主页面的class必须有page类,out类建议也加上,否则在刷新子页面会出现重叠。
  2. 链接必须是a链接,如<a href="#page1">页面1 - fade</a>。其中href是子页面链接,子页面可以是片段,即不包含<head>、css、js等内容。

当然,a链接里还可以添加其它属性。

data-rel="back" 定义返回的方式,可以没有。tab页切换建议值是autodata-title="标题" 设置子页面标题(适用于加载页面片段)data-reload="false" 默认是false,为true时子页面每次刷新data-ajax="false" 避免Ajax加载,使用传统刷新data-formdata="c=1&d=1" 给子页面传的参数data-timeout="30000" 设置请求超时时间为30秒。data-params="datatype=json&timeout=20000&success=fun_success" 自定义参数data-form="fade" 需要mobilebone.animate.css支持data-success="globalObject.fun.xxx_ajax_success 请求成功会调用的方法,后面会讲

示例:

页面1

有时候我们可能是在js里进行返回到主页面的,这时候没有a链接可以点击,我们可以使用location.href = '#pageHome';方式进行返回,即只要触发点击href里的#pageHome即可,就可以返回对应的id的主页面了。

默认浏览器上的返回按钮会返回到上一个page页面里。

子页面回调

当使用了需要mobilebone.js加载子页面时候,在子页面写js事件将无效。这时候需要在来源页(即主页面)使用需要mobilebone写。

fallback(pageInto, pageOut, response → options)

每次过场页面退出的时候都会执行, v.1.1.4+新增。参数与onpagefirstinto含义一致,不赘述。

上面摘自文档。在主页面我们可以使用普通的事件回调拿到页面进入那时刻的内容,如表单里的数据,但是对于在子页面进行输入再提交的数据取不到。使用Mobilebone.fallback()可以取到。

在Mobilebone.fallback()方法里可以监听到页面退出时刻文档里的内容。

Mobilebone.fallback = function(pageInto, pageOut){    $('#user_save').click(function(){        var nickname = $("input[name='nickname']").val();        var gender = $("input[name='gender']:checked").val();        $.ajax({            url: "#",            data: {'nick':nickname, 'gender':gender},            dataType: 'json',            type:'POST',            success: function(){},            error: function(){}        });    });  }

#user_save以及"input[name='nickname']"这里都是子页面的内容,是在主页面使用Mobilebone.fallback()获取到的。

pageOut为子页面退出(用户点击返回按钮)时候的文档DOM。使用console.log(pageOut)可以打印输出。

文档上的示例:

Mobilebone.callback = function(pagein) {    // NOT: var element = document.querySelector("#ID");    var element = pagein.querySelector("#ID");    // do sth by using elememt...};

参考:

  1. mobilebone.js-mobile移动web APP单页切换骨架 « 张鑫旭-鑫空间-鑫生活
    2.演示:
    developmaster
    (前后两个图分别是develop和master两个分支的测试页)

转载于:https://www.cnblogs.com/52fhy/p/4823374.html

你可能感兴趣的文章
河南农业大学c语言平时作业答案,河南农业大学2004-2005学年第二学期《C语言程序设计》期末考试试卷(2份,有答案)...
查看>>
c语言打开alist文件,C语言 文件的打开与关闭详解及示例代码
查看>>
c语言 中的共用体和结构体如何联合定义,结构体(Struct)、联合体(Union)和位域
查看>>
Lind.DDD.LindAspects方法拦截的介绍
查看>>
【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
查看>>
Maven依赖版本冲突的分析及解决小结
查看>>
你好,2017!
查看>>
冷备手工完全恢复(recover database,recover tablespace,recover datafile)
查看>>
JS 在火狐浏览器下关闭弹窗
查看>>
MongoDB GridFS——本质上是将一个文件分割为大小为256KB的chunks 每个chunk里会放md5标识 取文件的时候会将这些chunks合并为一个整体返回...
查看>>
Linux ad7606 驱动
查看>>
安装 RabbitMQ C#使用-摘自网络(包括RabbitMQ的配置)
查看>>
Linux 防火墙iptables命令详解
查看>>
JAVA入门[6]-Mybatis简单示例
查看>>
Spring定时任务的几种实现
查看>>
ZoomIt(投影演示辅助软件)下载、安装与运行使用
查看>>
IntelliJ IDEA JRebel Maven Tomcat 实现热部署
查看>>
Java通过join方法来暂停当前线程
查看>>
源码分析——Action代理类的工作
查看>>
spring 在service中需要抛出异常才能自动回滚
查看>>