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

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

这是个比较简单的单页面

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • fec基础_普通独立基础

    fec基础_普通独立基础 昨天休息了一下,思考一下可以研究的点,觉得这个fec还可以,就找了一点资料研究一下。 先跑点题,闲扯一会。在找资料的过程中,能找到的资料就很少,就有点感叹。科研为什么弱呢?可以看下90年代的论文,那水平略等于今天的一篇博客。这是积贫积弱到现在。 [1]中有段代码,求解伽罗华域的生成空间的。举的例子是GF(256),使用的本原多项式P(x)=x8+x5+x3+x2+1P(x)=x^8+x^5…

  • 前端技术周刊 2018-06-09:网络协议栈[通俗易懂]

    前端技术周刊 2018-06-09:网络协议栈

  • mybatis二级缓存的作用范围_java缓存机制

    mybatis二级缓存的作用范围_java缓存机制应用场景:      对于访问多的查询请求且用户对查询结果实时性要求不高,此时可采用mybatis二级缓存技术降低数据库访问量,提高访问速度,业务场景比如:耗时较高的统计分析sql、电话账单查询sql等。      实现方法如下:通过设置刷新间隔时间,由mybatis每隔一段时间自动清空缓存,根据数据变化频率设置缓存刷新间隔flushInterval,比如设置为30分钟、6…

  • 在线涂改图片 php,php网站怎么修改图片[通俗易懂]

    在线涂改图片 php,php网站怎么修改图片[通俗易懂]主要还是用到php中的GD库中的函数upload_image.php,主要是一个上传控件,用来选择图片YourusernameUploadimage**Acceptableimageformatsinclude:GIF,JPG/JPEGandPNG.ImageCaption然后是上传和处理图片的逻辑check_image.php…

  • 申请CSDN博客专家的成功历程

    申请CSDN博客专家的成功历程简单说一下申请博客专家的时间、某时间段的具体数据与历程心得。(过于粗糙请见谅)本人申请博客专家的次数一共为8次,换句话说就是申请第八次才成功的。申请博客专家的时间为以下:2020.6.92020.6.152020.6.182020.7.32020.7.312020.8.212020.9.102020.9.18第八次申请终于成功了,贼开心也很激动。感谢平台的认可,我会继续努力,把最好的分享给大家。送给大家一句话、同样也是送给的自己的一句话:“一定别放弃,因为很多事情做着做着就成功了

  • js实现的A星算法[通俗易懂]

    js实现的A星算法[通俗易懂]一、前言最近在写js的slg游戏,需要用到a星算法。之前用python写过https://blog.csdn.net/qq_39687901/article/details/80753433,现在再用js写一遍。二、源码//二维数组functionArray2D(w,h,num){vardata=[];vardefault_num=num|…

发表回复

您的电子邮箱地址不会被公开。

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