使用H5搭建webapp主页面

使用H5搭建webapp主页面

前言:

在一个h5和微信小程序火热的时代,作为安卓程序员也得涉略一下h5了,不然就要落后了,据说在简历上可以加分哦,如果没有html和css和js基础的朋友,可以自行先学习一下,很简单的。推荐0基础能力一般的,我建议可以看传智播客的韩顺平老师的视频或者毕向东老师的视频,能力强的同学可以在w3c文档自学。

主页面搭建

思路分析:

Meta标签中的ViewPort属性:ViewPort是承载代码层的一个View视图,而手机浏览器看到网页是承载ViewPort视图。因此,手机看到的层级关系,从上到下:代码View视图->ViewPort视图->浏览器视图。

所以我们只需要修改ViewPort这一层的属性,比如缩放等,即可对手机进行响应式布局,即安卓的自适应布局。

实现的效果图:(左右拖拽即可实现自动调整大小)

步骤一:搭建工程目录结构

步骤二:在index.html中声明ViewPort,输入meta:vp按下tab键自动生成,规定宽度为手机宽度,缩放比例为1

步骤三:由于每个浏览器的默认边距,默认属性的不同,我们需要全部初始化一遍,达到适应不同浏览器。

编写我们的common.css文件,记得在index.html中导入

*,
::after,
::before{
  margin: 0;
  padding: 0;
  /*当用户点击iOS的Safari浏览器中的链接或JavaScript的可点击的元素时,覆盖显示的高亮颜色*/
  -webkit-tap-highlight-color: transparent;
  /*设置所有是以边框开始计算宽度  百分比*/
  -webkit-box-sizing:border-box;
  box-sizing: border-box;
}
body{
	font-size: 14px;
	font-family: "Microsoft YaHei","sans-serif";
	color: #333;
}
a{
	color: #333;
	text-decoration: none;
}
a:hover{
	text-decoration: none;
}
input{
	border: none;
	outline: none;
	/*清除移动端默认的表单样式*/
	-webkit-appearance:none;
}
li{
	list-style: none;
}

步骤四:编写index.html文件

<body>
	<div class="layout">

	</div>
</body>

步骤五:编写index.css,来对这个layout类进行布局

.layout{
	width: 100%;
	max-width: 640px;
	min-width: 320px;
	height: 1000px;
	margin: 0 auto;
	background: #ff0000;
}

实现效果图:

轮播图和导航栏的搭建

思路分析:

1、导航栏实现:导航栏使用css的position=fixed和z-index=1000,使它固定在顶部并在网页的最上层,左边的icon和右边登陆按钮使用绝对位置来调整距离左边右边上边的距离,而中间的form表单只要Padding-Left和Padding-Right就可以随屏幕伸缩。

2、自动轮播效果实现:这里使用了JQuery的一个js开源库unslider。

3、十个选项按钮实现:使用一个列表,设置每一个li为块元素,宽度为20%,并且让10个选项左浮动,就可以自动排好两行。

实现的效果图:

导航栏实现

步骤一:编写html文件,将导航栏做成一个盒子,并放置需要的组件,并为它们取好类名,方便css的编写

        <!--搜索头部-->
        <header class="nav_header">
            <div class="nav">
                <a href="#" class="nav_logo"></a>
                <!-- 小键盘  enter 改变成  搜索 按钮 -->
                <form action="#">
                    <span class="nav_search_icon"></span>
                    <input type="search" placeholder="搜索关键字"/>
                </form>
                <a href="#" class="nav_login">登录</a>
            </div>
        </header>

步骤二:编写css文件,将放置的东西设置好宽高,宽用百分比可以自适应,高度则是自己测量

/*nav*/
.nav_header{
	position: fixed;
	height: 40px;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 1000;
}
.nav_header> .nav{
	width: 100%;
	height: 40px;
	max-width: 640px;
	min-width: 320px;
	margin: 0 auto;
	background:rgba(201,21,35,0.00);
	position: relative;
}
.nav_header> .nav> .nav_logo{
	width: 80px;
	height: 30px;
	position: absolute;
	background: url("../img/top_logo.png") no-repeat;
	background-size: 80px 20px;
	top: 10px;
	left: 0;
}
.nav_header> .nav> .nav_login{
	width: 50px;
	height: 40px;
	line-height: 40px;
	text-align: center;
	position: absolute;
	right: 0;
	top: 0;
	color: white;
	font-size: 15px;
}
.nav_header> .nav> form{
	width: 100%;
	padding-left: 85px;
	padding-right: 50px;
	height: 40px;
}
.nav_header> .nav> form> input{
	width: 100%;
	height: 30px;
	border-radius: 15px;
	margin-top: 5px;
	padding-left: 30px;
}
.nav_header> .nav >form >.nav_search_icon{
	height: 20px;
	width: 20px;
	background:url("../img/top_search.png");
	background-size: 20px 20px;
	position: absolute;
	left: 90px;
	top: 10px;
}

自动轮播实现

步骤一:根据官网编写自动轮播html文件

        <!--轮播图-->
        <div class="banner">
            <div>
            	<ul>
            		<li><a><img src="img/banner_01.jpg"></a></li>
            		<li><a><img src="img/banner_02.jpg"></a></li>
            		<li><a><img src="img/banner_03.jpg"></a></li>
            		<li><a><img src="img/banner_04.jpg"></a></li>
            		<li><a><img src="img/banner_05.jpg"></a></li>
            	</ul>
            </div>
        </div>

步骤二:根据官网导入js文件,需要下载unslider.js,它是基于JQuery.js的,所以需要下载2个,导入到项目中

        <script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
	<script type="text/javascript" src="js/unslider.js"></script>
	<script>
	$(function() {
		$('.banner').unslider({
			speed : 500,
            delay : 3000,
            nav : true,//是否启动导航图标
            dots: true,//是否出先圆点点
            arrows : false,
            autoplay : true //自动轮播
		});
	})
	</script>

步骤三:为了使图片能让我们手动滑动,还需要导入2个JQuery的库,导入之后就能手动滑动了

	<script type="text/javascript" src="js/jquery.event.move.js"></script>
	<script type="text/javascript" src="js/jquery.event.swipe.js"></script>

步骤四:为了让图片能刚好100%显示出来,并且实现自动轮播导航圆点,需要在css中加入实现

/*banner*/
.banner ul li a img{
	width: 100%;
}
.unslider {
    overflow: auto;
    margin: 0;
    padding: 0;
    /*Added*/
    position: relative;
}
.unslider-nav{
    position: absolute;
    width: 100%;
    bottom: 2%;
}

十个选项按钮实现

步骤一:编写html文件

        <!--导航栏-->
        <nav class="item">
            <ul class="clearfix">
                <li>
                    <a href="#">
                        <img src="img/nav_01.png" alt=""/>
                        <p>京东超市</p>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/nav_02.png" alt=""/>
                        <p>全球购</p>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/nav_03.png" alt=""/>
                        <p>服装城</p>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/nav_04.png" alt=""/>
                        <p>京东生鲜</p>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/nav_05.png" alt=""/>
                        <p>京东到家</p>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/nav_06.png" alt=""/>
                        <p>充值中心</p>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/nav_07.png" alt=""/>
                        <p>京东金融</p>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/nav_08.png" alt=""/>
                        <p>领券</p>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/nav_09.png" alt=""/>
                        <p>物流查询</p>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/nav_10.png" alt=""/>
                        <p>我的关注</p>
                    </a>
                </li>
            </ul>
        </nav>

步骤二:编写css文件

/*item*/
.item{
	width: 100%;
	height: 180px;
	background: #fff;
	margin-top: -4px;
	border-bottom: 1px solid #e0e0e0;
}
.item> ul{
	width: 100%;
}
.item> ul> li{
 	width: 20%;
 	float: left;
}
.item> ul> li> a{
	width: 100%;
	display: block;
	padding-top: 20px;
}
.item> ul> li> a> img{
	width: 40px;
	height: 40px;
	display: block;
	margin: 0 auto;
}
.item> ul> li> a> p{
	text-align: center;
	color: #666;
}

商品区块的搭建

思路分析:

1、秒杀模块:可以分为头部的倒计时和内容部分三个li存放三个图,并且右边界为1px。

2、左一大图、右两小图:这里使用模块化开发,在css写好width=50%、左右两边1px的border和左浮动右浮动的类,直接在html创建好后使用即可。左大图采用左浮动,右小图采用右浮动,大小都为50%。

3、左两小图、右一大图:左小图采用左浮动,右大图采用有浮动。

实现的效果图:

准备工作

编写common.css,用于模块化开发,只要在class里面放置需要的类名即可:

.fl{
	float: left;
}
.fr{
	float: right;
}
.m_l10{
	margin-left: 10px;
}
.m_r10{
	margin-right: 10px;
}
.m_b10{
	margin-bottom: 10px;
}
.m_t10{
	margin-top: 10px;
}
.b_l1{
	border-left: 1px solid #e0e0e0;
}
.b_r1{
	border-right: 1px solid #e0e0e0;
}
.b_b1{
	border-bottom: 1px solid #e0e0e0;
}
.w_50{
	width: 50%;
	display: block;
}
.w_50 >img{
	width: 100%;
	display: block;
}
.clearfix::before,
.clearfix::after{
	content: "";
	height: 0;
	line-height: 0;
	display: block;
	visibility: hidden;
	clear: both;
}

秒杀区块、左大图右小图、左小图右大图

步骤一:编写html文件

        <!--商品-->
        <main class="shopItem">
            <!--秒杀区块-->
            <section class="shop_box">
                <!--头部-->
                <div class="shop_box_tit no_border">
                    <div class="fl m_l10 sk_l">
                        <span class="sk_l_icon"></span>
                        <span class="sk_l_name m_l10">掌上秒杀</span>
                        <div class="sk_l_time m_l10">
                            <span>0</span>
                            <span>0</span>
                            <span>:</span>
                            <span>0</span>
                            <span>0</span>
                            <span>:</span>
                            <span>0</span>
                            <span>0</span>
                        </div>
                    </div>
                    <div class="fr m_r10"><a href="#">更多></a></div>
                </div>
                <!--内容-->
                <div class="sk_con">
                    <ul class="clearfix">
                        <li>
                            <a href="#"><img src="img/detail01.jpg" alt=""/></a>
                            <p>¥10.00</p>
                            <p>¥100.00</p>
                        </li>
                        <li>
                            <a href="#"><img src="img/detail02.jpg" alt=""/></a>
                            <p>¥10.00</p>
                            <p>¥100.00</p>
                        </li>
                        <li>
                            <a href="#"><img src="img/detail01.jpg" alt=""/></a>
                            <p>¥10.00</p>
                            <p>¥100.00</p>
                        </li>
                    </ul>
                </div>
            </section>
            <!--左大图、右小图-->
            <section class="shop_box">
                <!--头部-->
                <div class="shop_box_tit"><h3>京东超市</h3></div>
                <!--内容-->
                <div class="clearfix">
                    <a href="#" class="fl w_50 b_r1"><img src="img/cp1.jpg" alt=""/></a>
                    <a href="#" class="fr w_50 b_b1"><img src="img/cp2.jpg" alt=""/></a>
                    <a href="#" class="fr w_50 "><img src="img/cp3.jpg" alt=""/></a>
                </div>
            </section>
            <!--左小图、右大图-->
            <section class="shop_box">
                <!--头部-->
                <div class="shop_box_tit"><h3>京东超市</h3></div>
                <!--内容-->
                <div class="clearfix">
                    <a href="#" class="fr w_50 b_l1"><img src="img/cp4.jpg" alt=""/></a>
                    <a href="#" class="fl w_50 b_b1"><img src="img/cp5.jpg" alt=""/></a>
                    <a href="#" class="fl w_50"><img src="img/cp6.jpg" alt=""/></a>
                </div>
            </section>
            <!--左大图、右小图-->
            <section class="shop_box">
                <!--头部-->
                <div class="shop_box_tit"><h3>京东超市</h3></div>
                <!--内容-->
                <!--内容-->
                <div class="clearfix">
                    <a href="#" class="fl w_50 b_r1"><img src="img/cp1.jpg" alt=""/></a>
                    <a href="#" class="fr w_50 b_b1"><img src="img/cp2.jpg" alt=""/></a>
                    <a href="#" class="fr w_50 "><img src="img/cp3.jpg" alt=""/></a>
                </div>
            </section>
        </main>

步骤二:编写css文件

/*shopItem*/
.shopItem{
	padding: 0 5px;
}
.shopItem> .shop_box{
	width: 100%;
	margin-top: 10px;
	background: #fff;
	box-shadow: 0 0 1px #e0e0e0;
}
.shopItem> .shop_box> .shop_box_tit{
	width: 100%;
	height: 32px;
	line-height: 32px;
	border-bottom: 1px solid #e0e0e0;
}
.shopItem> .shop_box> .shop_box_tit.no_border{
	border-bottom: none;
}
.shopItem> .shop_box> .shop_box_tit> h3{
	padding-left: 18px;
	font-size: 15px;
	color: #666;
	font-weight: normal;
	position: relative;
}
.shopItem> .shop_box> .shop_box_tit> h3::before{
	content: "";
	width: 3px;
	position: absolute;
	top: 10px;
	left: 10px;
	height: 12px;
	background: #d8505c;
}
.shop_box_sk{

}
/*秒殺*/
.sk_l> .sk_l_icon{
	background: url("../img/sk_icon.png") no-repeat;
	background-size: 16px 20px;
	float: left;
	width: 16px;
	height: 20px;
	margin-top: 6px;
}
.sk_l> .sk_l_name{
	font-size: 15px;
	color: #d8505c;
	float: left;
}
.sk_l> .sk_l_time{
	margin-top: 10px;
	float: left;
}
.sk_l> .sk_l_time> span{
	float: left;
	width: 15px;
	line-height: 15px;
	height: 15px;
	text-align: center;
	background: #333;
	color: #fff;
	margin-left: 3px;
}
.sk_l> .sk_l_time> span:nth-child(3n){
	color: #333;
	background: #fff;
	width: 5px;
}
.sk_con> ul{
	width: 100%;
	margin: 8px 0;
}
.sk_con> ul> li{
	width: 33.33%;
	float: left;
}
.sk_con> ul> li> a{
	display: block;
	width: 100%;
	margin: 0 auto;
	border-right: 1px solid #e0e0e0;
}
.sk_con> ul> li:last-child> a{
	border-right:0;
}
.sk_con> ul> li> a> img{
	width: 67%;
	margin: 0 auto;
	display: block;
}
.sk_con> ul> li> p{
	text-align: center;
}
.sk_con> ul> li> p:first-of-type{
	color: #d8505c;
}
.sk_con> ul> li> p:last-of-type{
	font-size: 12px;
	color: #666;
	text-decoration:line-through;
}

源码下载

时间: 2024-10-28 20:55:57

使用H5搭建webapp主页面的相关文章

C#开发移动应用系列(2.使用WebView搭建WebApp应用)

前言 上篇文章地址:C#开发移动应用系列(1.环境搭建) 嗯..一周了 本来打算2天一更的 - - ,结果 出差了..请各位原谅.. 今天我们来讲一下使用WebView搭建WebApp应用. 说明一下为何要用WebApp的形式,因为首先..易于更新,其次学习成本又会降低一个档次 因为不需要去很深入的了解各种安卓的界面布局,我们直接全屏覆盖一个WebView就好了.(当然,实际应用中还是需要加入一部分原生控件来提高用户体验) 确定一下本篇的学习目标: 1.学会使用WebView基础功能 2.通过W

h5之scrollIntoView控制页面元素滚动

如果滚动页面也是DOM没有解决的一个问题.为了解决这个问题,浏览器实现了一下方法,以方便开发人员如何更好的控制页面的滚动.在各种专有方法中,HTML5选择了scrollIntoView()作为标准方法.scrollIntoView()可以在所有的HTML元素上调用,通过滚动浏览器窗口或某个容器元素,调用元素就可以出现在视窗中.如果给该方法传入true作为参数,或者不传入任何参数,那么窗口滚动之后会让调动元素顶部和视窗顶部尽可能齐平.如果传入false作为参数,调用元素会尽可能全部出现在视口中(可

搭建mysql主主

实验环境 192.168.137.11 (lamp) 和192.168.137.12(mysql) 先搭建主从,在搭建主主. 1.搭建环境 根据auto_lamp.tar 里面的安装包和脚本来搭建. 192.168.137.11  运行脚本auto_lamp_3.0.sh 选择7自动安装lamp平台. 192.168.137.11  运行脚本auto_lamp_3.0.sh 选择4自动安装mysql平台. 2.配置mysql主从. a.    在192.168.137.11上. [[email 

Android仿大众点评引导页(ViewPage)+主页面(Fragment)的实现

大家好,今天主要是实现仿大众点评引导页和主页面以及城市定位的实现,主要使用ViewPager+Fragment+SharedPreferences,实现了第一次打开程序出现引导页,再次打开跳过引导页,这也是一般应用常用的应用基本架构方式.下面首先来看最终实现效果如下图: 1.布局文件说明 1)欢迎页布局文件welcome.xml 2) 引导页布局文件welcome_guide.xml 3)首页布局文件main_home.xml 4)团购布局文件main_tuan.xml 5) 发现布局文件mai

主页面、iframe之间调用以及传值

主页面.iframe之间的调用和传值,无非就是两个交互形式: 主页面与子页面的交互 子页面之间的交互 接下来要讲的是四种交互传值的方式:利用postMessage方法传值.DOM操作传值.URL方式传值.利用全局属性传值 利用postMessage方法传值 这种方式非常像事件绑定.监听.postMessage方法接收两个参数:一条消息.一个表示消息接收方来自哪个域的字符串.第二个参数对保障安全通信非常重要,可以防止浏览器把消息发送到不安全的地方. 下面是应用实例: //主页面发送消息 var m

启动页分为4页,最后一页有一个按钮,点击跳转到主页面

代码效果为:启动页分为4页,最后一页有一个按钮,点击跳转到主页面. 上代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. UIScrollView * sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; sv.contentSize = CGSizeMake(320

CENTOS6.5 安装 mysql5.6 以及搭建双主

一.Mysql5.6.10安装 1.1.必要软件 yum -y install gcc gcc-c++ autoconf automake bison ncurses-devel libtool-ltdl-devel* cmake make 1.2.编译安装 [[email protected] src]#groupadd mysql [[email protected] src]# useradd  mysql -g mysql [[email protected] src]# pwd /us

跨域IFRAME自适应高度(子页面TAB切换不同的高度,主页面IFRAME嵌套子页面自适应高度)

1.pinganproxy.html <!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8"><title></title></head><body><script type="text/javascript">eval(function(p,a,c,k,e,r){e=fu

基于laravel5.4 vue 和vue-element搭建的单页面后台CMS

介绍 该项目后台是基于vue和laravel搭建的单页面CMS系统,包含了文章管理,权限管理,用户管理等基本模块. 前台使用了传统web技术,laravel渲染搭建了个博客系统 github地址:https://github.com/zdpdp/lvCMS 喜欢的点个星星喔 搭建 npm install composer install npm run dev / npm run prod 修改根目录下的env文件 填写自己的数据库信息 php artisan migrate (也可使用目录下的