html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」移动端的web网页使用的是响应式设计,但一般我们看到的网站页面都是跳转刷新得到的,比如通过点击一个menu后进入到另一个页面今天来说下是移动端的单页面的布局。单页面就是一切操作和布局都是在一个页面下进行不需要页面跳转,再通俗的说就是类似于平常的选项卡但是他又比选项卡要复杂一点因为他是在手机端并且当做是一个页面单页面的作用以及优势:1.嵌套到native里实现app的混合开发2.数据量小的页…

大家好,又见面了,我是你们的朋友全栈君。

移动端的web网页使用的是响应式设计,但一般我们看到的网站页面都是跳转刷新得到的,比如通过点击一个menu后进入到另一个页面

今天来说下是移动端的单页面的布局。单页面就是一切操作和布局都是在一个页面下进行 不需要页面跳转 ,再通俗的说就是类似于平常的选项卡

但是他又比选项卡要复杂一点 因为他是在手机端 并且当做是一个页面

单页面的作用以及优势:

1.嵌套到native里实现app的混合开发

2.数据量小的页面用单页面便于开发和维护

3.无需跳转页面响应更快

代码实践

1 页面html结构

复制代码

html5 移动端单页面布局

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

html5 移动端单页面,html5 移动端单页面布局「建议收藏」

  • Html5
  • Css3
  • Javascript
  • About

复制代码

注:页面图片均来自dribbble

demo里面我用的全是图片静态展示 你可以添加自己的结构或动态程序

页面结构跟我们平常写的选项卡没什么区别,接下来我们用css装饰这个结构让他在手机上呈现出页面的效果

2 css

复制代码

/*初始化css*/

*{ margin:0; padding: 0;}

li{ list-style-type: none;}

img{ max-width: 100%; display: block; margin: 0 auto 5px auto;}

html,body{ width: 100%; height: 100%; background: #e4e4e4;

-webkit-tap-highlight-color: rgba(88,44,22,0.9);

-webkit-touch-callout: none;

-webkit-user-select: none;

}

/*主体页面样式*/

.main{ width: 100%; height: auto; position: relative;}

.main section{ width: 100%; height: auto; position:absolute; left: 0; top:0; }

.main section.hide{ display: none;}

.main section.curr{ display: block;}

/*菜单样式*/

.menu{ width: 100%; height: 45px; position: fixed; bottom:0; left:0; box-shadow: #2d2d2d 0 0 4px;background:#0099cc;}

.menu.menucurr{ background: #ea4c88;}

.menu ul{width: 100%; height: 100%; }

.menu li{ width: 24.9%; height: 100%; float: left; line-height: 45px; text-align: center; background: #0099cc; color:#fff;}

.menu li.curr{ background: #ea4c88;}

.menu li:nth-child(1),.menu li:nth-child(2),.menu li:nth-child(3){ border-right:1px solid #663300;}

复制代码

移动端的页面多数情况下用百分比或者媒体查询来设置页面的宽高度 这样会达到响应的效果

这里解释几点

1.-webkit-tap-highlight-color: rgba(0,0,0,0);也可以写成-webkit-tap-highlight-color: transparent; 去掉点击时高光显示 你也可以更改里面的参数 达到你想要的点击显示高光效果

2.-webkit-touch-callout: none; //长按页面时不触发系统菜单

3.-webkit-user-select: none; //长按无法选择文本 这个很有用 一般如果body里面没有添加这个属性的手机页面 当我们长按某段文字的时候就会出现选中这段文字弹出“复制,全选”等选项 但在webapp开发里 这个就显得很不友好 所以尤其是在webapp开发的时候 为了达到与native一样的真实效果 必须的添加

4.html,body{ width: 100%; height: 100%;} 这个是整个文档的初始化宽高度 后面的子级都是按照这个数据设置

5.main和子级的height都设置为auto 你也可以不用设 但如果你的页面是允许滚动的话最好还是要设一下

6.我们把menu使用固定定位到页面底部 你也可以把他定位在顶部 或任何你想定位的地方

7.menu 里面的tab我们使用的是百分比分配 因为有border-right所以不能很准确的分配多少 这个应该会有什么更精准的方法平均分配 待研究

3 js

复制代码

$(function(){

$(“.menu li”).each(function(index){

$(this).tap(function(){

$(this).addClass(“curr”).siblings().removeClass(“curr”);

$(“.main section”).eq(index).show().siblings().hide();

if(index==3){

$(“.menu”).addClass(“menucurr”);

}else{

$(“.menu”).removeClass(“menucurr”);

}

})

})

})

复制代码

引用的框架是zepto.js 目前移动开发比较流行的js框架 zepto的语法跟jquery是相通的 所以可以按照jquery的写法编写

这里的点击menu事件不是使用click而是tap 这是zepto为移动端专门编写的一个点击方法 确切的说应该叫轻触 他比click的点击速度要快 使用的是touch事件 这个在默认的zepto里面是没有的 需要把touch这个模块儿添加进来才可使用tap

这样一个移动端的单页面就完成了

这是个比较简单的单页面

根据这个思维还可以更灵活的编写一些动态的并且更绚丽的页面!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151997.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DB9串口和RJ45串口

    大家好,又见面了,我是你们的朋友全栈君。

    2022年4月8日
    63
  • web worker 的传值方式以及耗时对比

    web worker 的传值方式以及耗时对比

    2021年6月29日
    102
  • 什么是文本挖掘 ?「建议收藏」

    什么是文本挖掘 ?「建议收藏」什么是文本挖掘  文本挖掘是抽取有效、新颖、有用、可理解的、散布在文本文件中的有价值知识,并且利用这些知识更好地组织信息的过程。1998年底,国家重点研究发展规划首批实施项目中明确指出,文本挖掘是“图像、语言、自然语言理解与知识挖掘”中的重要内容。  文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现。文本挖掘利用智能算法,如神经网络、基于案例的推理、可能性推理等,并结合文字处

    2022年6月17日
    28
  • 运行时异常和一般异常的区别[通俗易懂]

    运行时异常和一般异常的区别[通俗易懂]Java提供了两类主要的异常:runtimeexception和checkedexception。checked异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。  但是另外一种异常:runtimeexc

    2022年9月28日
    4
  • cpld和fpga区别

    cpld和fpga区别1、cpld执行一次下载编程后,逻辑阵列就被保存下来;fpga断电后逻辑功能不能保存,需要一块配置芯片在上电后对其重新配置。2、cpld擦写次数非常有限(100-1000),而fpga读写次数可以理解为无限次。3、cpld容量较小,fpga容量很大。4、一般调试阶段用fpga,实际产品用cpld。5、cpld保密性好,速度快。https://wenku.baidu.com/…

    2022年6月4日
    66
  • Linux安装部署Redis

    Linux安装部署RedisRedis

    2022年10月4日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号