0
点赞
收藏
分享

微信扫一扫

移动端+京东移动端首页制作

凛冬已至夏日未远 2022-04-05 阅读 63
htmlcss

一:移动端的viewport

手机拥有了浏览器的初期,人们并没有专门为移动设备设计页面,造成的直接结果就是,访问的页面是直接将电脑页面进行缩放,操作起来有诸多不便,viewport就是用来解决这个问题的

1.viewport的概念:移动设备上,用来显示网页的区域.

a)如果把移动设备的浏览器(也有可能是app中的webview) ,当做相框的话
b)viewport就相当于相框中的画,可能会比相框小,可能会比相框大,如果刚好一样大,那就皆大欢喜.

2.修改viewport:我们可以通过meta标签去修改viewport的值 ,防止滚动条出现,提升用户体验

a)移动web常见设置

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

b)该属性最早是苹果公司在Safari中推出用来解决移动设备的viewport问题的.后来被各大安卓以及浏览器厂商效仿,所以说这个属性真的是非常有用的

3.可选值

a)width:
设置layout viewport 的宽度,为一个正整数,或字符串" device- width"
b)initial-scale:
设置页面的初始缩放值,为一个数字,可以带小数
c)minimum-scale:
允许用户的最小缩放值,为一个数字,可以带小数
d)maximum-scale:
允许用户的最大缩放值,为一个数字,可以带小数
e)height:
设置layout viewport 的高度,这个属性对我们并不重要,很少使用
f)user-scalable:
是否允许用户进行缩放,值为"no"或"yes", no 代表不允许,yes代表允许

二:京东移动端首页制作:

在这里插入图片描述

1.将案例分为四个结构块

a)头部固定块
b)图片轮播块
c)商品分类块
d)商品信息块

2.Div结构:

在这里插入图片描述

3.头部固定块结构

a)效果:
在这里插入图片描述

b)Logo
c)表单元素-搜索栏
d)登录按钮
e)结构:
在这里插入图片描述

f)样式:

/*头部样式*/
.jd_header{
    width: 100%;
    height: 50px; 
    position: fixed;
    z-index: 999; 
    max-width: 640px; /*最大宽度*/
    min-width: 320px; /*最小宽度*/
    margin: 0px auto; 
}
.jd_header > .jd_logo{
    width:60px;
    height:36px;
    position: absolute;
    background: url("../images/sprites.png") no-repeat;
    background-size: 200px 200px; /*比例缩放*/
    background-position: 0px -103px;
}
.jd_header > .login{
    width: 50px;
    height: 36px;
    line-height:36px;
    text-align: center;
    color: white;
    position: absolute;
    right: 0;
    top:0;
}
.jd_header > form{
    width: 100%;
    padding-left:75px;
    padding-right:50px;
    height:36px;
}
.jd_header > form >input {
    width: 100%;
    height:30px;
    border-radius: 15px;
    margin-top:3px;
    padding-left:25px;
}
.jd_header > form > .icon_search{
    background: url("../images/sprites.png") no-repeat;
    background-size: 200px 200px; /*比例缩放*/
    position: absolute;
    width:20px;
    height:20px;
    top:8px;
    left: 80px;
    background-position: -60px -109px;
}

4.图片轮播块结构
a)效果:
在这里插入图片描述

b)图片
c)页码标记
d)Div结构
在这里插入图片描述

e)样式

/*
轮播图样式*/
.jd_banner{
    width:100%;
    position: relative;
    overflow: hidden;
}
.jd_banner > ul:first-child{
    width:1000%; /*10张图片*/
   /* 默认偏移*/
    transform: translateX(-10%);
    /*尽可能做webkit内核的兼容*/
    -webkit-transform:translateX(-10%);
}
.jd_banner > ul:first-child >li{
    width:10%;
    float: left;
}
.jd_banner > ul:first-child >li >a{
    width:100%;
    /*font-size: 0px;*/
}
.jd_banner > ul:first-child >li >a >img{
    width:100%;
    display: block;
    /*vertical-align: middle;*/
}
/*pageControl的样式*/
.jd_banner > ul:last-child{
    width: 118px;
    position: absolute;
    bottom: 5px;
    left:50%;
    margin-left: -59px;
}
.jd_banner > ul:last-child >li {
    width: 6px;
    height: 6px;
    float: left;
    border-radius: 3px;
    border: 1px solid white;
    margin-left: 10px;
}
.jd_banner > ul:last-child >li:nth-child(1) {
    margin-left: 0px;
}
/*当前被选择的样式*/
.jd_banner > ul:last-child >li.now{
    background-color: #fff;
}

5.商品分类块结构
a)效果:
在这里插入图片描述

b)分析:8个li,里面包含图片 的文本
c)结构
在这里插入图片描述

d)样式

/*
导航栏样式*/
.jd_nav{
    width:100%;
    background-color: #fff;
}
.jd_nav >ul{
    width:100%;
    padding:10px 0px;
}
.jd_nav >ul > li{
    width:25%;
    float: left;
}
.jd_nav >ul > li >a{
    display: block;
}
/*图片大小固定*/
.jd_nav >ul > li >a >img{
    width: 40px;
    height:40px;
    display: block;
    margin:0 auto;
}
.jd_nav >ul > li >a > p{
    text-align: center;
    color: #666;
    font-size: 12px;
    padding:6px;
}

6.商品信息块结构:第一个子结构块“掌上秒杀”有一些特殊,对其进行单独处理
a)效果:
在这里插入图片描述

b)结构

i. 顶部标题栏
  1. 时钟图标
  2. 文本
  3. 倒计时
  4. 更多
ii.详细内容

c) Div代码
i.整体结构:
在这里插入图片描述

ii.顶部标题栏

1.掌上秒杀
在这里插入图片描述

2.京东超市
在这里插入图片描述

iii.内容

在这里插入图片描述

d)样式

/*商品主盒子*/
.jd_product{
    padding:0 5px;
}
.jd_product > .jd_product_box{
    width:100%;
    margin-top:10px;
    background-color: #fff;
    box-shadow: 0 0 1px #ededed;
}
.jd_product > .jd_product_box > .jd_product_box_tip{
    height:32px;
    min-width: 320px;
    line-height:32px;
    border-bottom: 1px solid #e0e0e0;
}
/*第一个商品信息块没有底部边框*/
.jd_product > .jd_product_box > .jd_product_box_tip.no-border{
    border-bottom: none;
}
.jd_product > .jd_product_box > .jd_product_box_tip >h3{
    font-weight: normal; /*去除加粗效果*/
    font-size: 15px;
    padding-left: 20px;
    position: relative;
    color: #666;
}
.jd_product > .jd_product_box > .jd_product_box_tip >h3::before{
    /*转换块的方式:display:block  position:abslute  float:left*/
    content: "";
    position: absolute;
    width: 3px;
    height: 12px;
    left: 10px;
    top:10px;
    background-color: #d8505c;
}
/*掌上秒杀*/
.jd_sk{

}
.jd_sk  .sk_icon{
    background: url("../images/seckill-icon.png") no-repeat;
    background-size: 16px 20px;
    width: 16px;
    height: 20px;
    float: left;
    margin-top:6px;
}
.jd_sk  .sk_name{
    color: #d8505c;
    font-size: 15px;
    float: left;
}
.jd_sk  .sk_time{
    float: left;
    margin-top:10px;
}
.jd_sk  .sk_time > span{
    width: 15px;
    height: 15px;
    line-height:15px;
    background-color: #222;
    text-align: center;
    color: white;
    float: left;
    margin-left:3px;
}
.jd_sk  .sk_time > span:nth-child(3n){
    background: white;
    color: #333;
    width: 5px;
}
.jd_sk .jd_product_box-content > ul{
    width: 100%;
    padding:10px 0;
}

.jd_sk .jd_product_box-content > ul > li{
    width:33.333%;
    float: left;
    font-size: 12px;
}
.jd_sk .jd_product_box-content > ul > li > a{
    width:100%;
    display: block;
    border-right: 1px solid #e0e0e0;
}
.jd_sk .jd_product_box-content > ul > li:last-child > a{
    border-right: none;
}
.jd_sk .jd_product_box-content > ul > li > a >img{
    width:60%;
    margin: 0 auto;
    display: block;
}
/*E:first-of-type:选择E同类型的同级的选择器的第一个元素
E:last-of-type:选择E同类型的同级的选择器的最后一个元素
E:nth-of-type(n):选择E同类型的同级的选择器的第n个元素*/

.jd_sk .jd_product_box-content > ul > li >p:first-of-type{
    text-align: center;
    color: #d8505c;
    padding-top:5px;
}
.jd_sk .jd_product_box-content > ul > li >p:last-of-type{
    text-align: center;
    text-decoration: line-through;
}

/*组合样式*/
.w_50{
    width:50%;
    display: block;
}
.w_50 > img{
    width:100%;
    display: block;
}
.b_left{
    border-left:1px solid #e0e0e0;
}
.b_right{
    border-right:1px solid #e0e0e0;
}
.b_bottom{
    border-bottom:1px solid #e0e0e0;
}

7.Js效果:头部透明,当滚动的时候,慢慢将透明度修改为不透明,当滚动的高度超出轮播图的高度时,保持固定的颜色

window.onload=function(){
    search();
}

function  search(){
    /*1.当滚动的时候,颜色加深
    2.当超出轮播图的范围,颜色固定*/
    /*获取搜索盒子*/
    var searchBox=document.querySelector('.jd_header_box');
    /*获取轮播盒子*/
    var bannerBox=document.querySelector('.jd_banner');
    //获取轮播图的高度
    var height=bannerBox.offsetHeight;
    //监听window的滚动事件
    window.onscroll=function(){
        //不断的获取离顶部的距离
        var top=document.body.scrollTop;
        //初始透明度
        var opacity=0;
        //判断当前滚动的距离是否大于轮播图的高度
        if (top<height){
            opacity=top/height;
        }
        else{
            opacity=1;
        }
        searchBox.style.background="rgba(201,21,35,"+opacity+")";
    }
}
举报

相关推荐

0 条评论