当前位置: 移动技术网 > IT编程>网页制作>HTML > HTML+CSS 静态页面项目仿写(css仿制js实现效果)

HTML+CSS 静态页面项目仿写(css仿制js实现效果)

2020年08月10日  | 移动技术网IT编程  | 我要评论
HTML+CSS 阶段项目总结一、 项目介绍

HTML+CSS 阶段项目总结

经过一段时间的HTML+CSS学习,初步掌握了网页布局与样式编码的思路。尝试着记录项目过程中使用的方法与遇见的错误。

一、项目介绍

本次项目已小组为单位,制作静态页面及部分交互效果,选择了某驰的官网进行模仿,项目内容分为:首页、车型及其详情页、客户服务以及新款车型推广页。新款车型推广页的任务由我完成(其中顶部导航以及底部导航内容由组员制作)。
在这里插入图片描述

二、项目内容

1.新车型推广页面

(1)banner部分(轮播仿制、箭头动画)

在这里插入图片描述

 由于JS的内容为涉及,又想要做轮播的效果。这次的banner通过CSS的动画来仿制了轮播的效果。
原理介绍:
轮播的效果就是更替banner页图片,因此我将图片设定为背景图片。总共准备了六张图,为了实现背景图每两秒更替新的一张,也就是总共
12s,使用动画属性定义了关键帧,将12s平分,所以动画帧为0%、20%、40%、60%、80%、100%,每帧的动画效果为重新设置背景图片。
CSS源码如下: 
/*广告栏*/ #amg_banner { position: relative; height: 86vh; width: 100%; cursor: pointer; background: url("../img/ada-new.jpg"), url("../img/ada-new.jpg"),url("../img/kv-my800050-amg-a-35-pc.jpg"), url("../img/pc-banner.jpg"),url("../img/v3-gle-53-coupe-pc-kv.jpg"), url("../img/2880-pc.jpg"),url("../img/kv-my800050-amg-cla-35-pc.jpg") no-repeat center; background-size: cover; animation: lunbo 12s step-start infinite ; } /*轮播模仿*/ @keyframes lunbo { 0% { background-image: url("../img/ada-new.jpg"); } 20% { background-image: url("../img/kv-my800050-amg-a-35-pc.jpg"); } 40% { background-image: url("../img/pc-banner.jpg"); } 60% { background-image: url("../img/v3-gle-53-coupe-pc-kv.jpg"); } 80% { background-image: url("../img/2880-pc.jpg"); } 100% { background-image: url("../img/kv-my800050-amg-cla-35-pc.jpg"); } } 
制作到这一步后,通过animation: lunbo 12s linear  infinite ;调用动画,在实测过程中发现linear过渡类型,会使轮播的图片具有淡入
淡出的效果,背景图更替会闪屏。为解决这些问题,查阅资料得知step-start或step-end在此处均可解决淡入淡出效果;闪屏是由于下一张背
景图在加载完成后的闪出,因此我将所有背景图都加在background属性下,这样一来网页加载时,所有背景图都会加载,可以解决闪屏问题;
infinite 使动画无限次的执行;轮播效果就这样简单的仿制成功。

	箭头动画
	
	箭头往复运动,两个分别定位到页面左右端垂直居中,通过动画改变left、right的值实现往复运动,CSS源码如下: 
/*左箭头及其动画*/ #amg_banner #left_jiantou { position: absolute; width: 50px; height: 50px; top: 40vh; left: 50px; animation: zuojiantou 1s ease-in-out infinite alternate; } @keyframes zuojiantou { from { left: 50px; } to{ left: 10px; } } /*右箭头及其动画*/ #amg_banner #right_jiantou { position: absolute; width: 50px; height: 50px; top: 40vh; right: 50px; animation: right_jiantou 1s ease-in-out infinite alternate; } @keyframes right_jiantou { from { right: 50px; } to{ right: 10px; } } 

2.中部导航栏(粘滞定位、锚点定位、移入效果)

 在使用粘滞定位时,至少需要设定top、bottom、left、right的其中一个属性值,这里设置top:0,当	页面向下滚动,导航栏位置页面窗
	口顶部时,粘附在顶部随着页面一起下滚。这里出现了一个问题,在未设置层级关系时,导航栏下面的内容	会遮挡导航栏。因此,在使用
	定位时,必须考虑内容层级关系,使用z-index属性调整内容层级。 
#mid_nav { position: sticky; width: 100%; height: 80px; line-height: 80px; background-color: #222222; top: 0; z-index: 1; } 
 锚点定位,每个需要定位板块的h标题标签给定id,导航栏的a标签 href="#id"定位至对应区域。例如:
	<h1 id="chexing">AMG车型 </h1> 
<ul class="clear"> <li><a href="#chexing">车型</a></li> <li><a href="#jingxiaoshang">查找经销商</a></li> <li><a href="#about_amg_h">关于AMG</a></li> <li><a href="#tiyan">体验AMG</a></li> <li><a href="#huodong">AMG赛车活动</a></li> <li><a href="#sc">AMG驾驶学院</a></li> <li><a href="#club_h">AMG车主俱乐部</a></li> </ul> 
 导航栏鼠标移入效果,移入时字体变色,出现下边框线 

在这里插入图片描述

#mid_nav .w ul li a:hover { color: red; border-bottom: 2px solid red; } 

3.车型栏(移入对应链接时改变车型图片)
车型图

 由于hover属性只能选择其弟级或子级元素,因此在HTML结构上,车型图片的div必须位于链接标签的结构以下,不能越级,否者hover属性
	不能选中,效果也就无法实现。
原理:通过hover属性改变车型背景图,实现移入时的图片变化。 
/*第一列车型图变换*/ #amg_car_models_img>ul>li>ul>li>a:nth-of-type(2):hover~#img1{ background-image: url("../img/toppc.png"); } #amg_car_models_img>ul>li>ul>li>a:last-of-type:hover~#img1{ background-image: url("../img/400x162-pc.png"); } 
/*第一列车型图变换*/ #amg_car_models_img>ul>li>ul>li>a:nth-of-type(2):hover~#img1{ background-image: url("../img/toppc.png"); } #amg_car_models_img>ul>li>ul>li>a:last-of-type:hover~#img1{ background-image: url("../img/400x162-pc.png"); } 

4.查找栏(点击事件仿制)

在这里插入图片描述
在这里插入图片描述

通过checkbox的checked实现点击绑定,当复选框选中时,下拉框的height:0变更为height:300px,并设置过渡效果,实现点击出现下拉框的
效果。checkbox有默认样式,通过-webkit-appearance: none;将默认样式清除,重新设置其背景或其他样式改变成上图的箭头图标。
CSS代码如下: 
 <input id="click" type="checkbox" value="^"> /*checkbox样式更改*/ #map #click { display: inline-block; width: 40px; height: 40px; -webkit-appearance: none; color: white; line-height: 50px; text-align: center; position: absolute; border-radius: 50%; outline: none; border: none; transition: all .2s linear; background: url("../img/上箭头.png") center no-repeat #444; background-size: 50%; cursor: pointer; } 
其余部分就不做详细介绍了,在二维码图片定位时,使用了CSS的calc() 函数 进行居中。使得屏幕分辨率变化时,二维码始终水平居中。 
#recruiting #erweima { width: 100%; margin-top: -10%; } #recruiting #erweima img, #recruiting #erweima h2{ width: 15%; text-align: center; margin-left: calc(50% - 7.5%); } 

5.新车型导航页
ALT
(1)规定版心宽度为940px

.w { width: 940px; margin: auto; } 
 设定版心宽度后,margin:auto导航栏始终居中。 

(2)带有车型标志(mercedes)的导航栏使用粘滞定位。

#Mercedes_logo { height: 60px; line-height: 60px; background-color: #222222; border: 1px solid black; position: sticky; top: 0; z-index: 1; } 
 设定高度与行高使得logo图片垂直居中.在使用粘滞定位时,至少需要设定top、bottom、left、right的其中一个属性值,这里设置top:0
,当页面向下滚动,导航栏位置页面窗口顶部时,粘附在顶部随着页面一起下滚。这里出现了一个问题,在未设置层级关系时,导航栏下面的内
容会遮挡导航栏。因此,在使用定位时,必须考虑内容层级关系,使用z-index属性调整内容层级。 

在这里插入图片描述
(3)分栏移入,字体浮入效果
在这里插入图片描述

 字体使用定位,透明度置0. 
#directory_up .bg h4, #directory_down .bg h4{ position: absolute; margin-left: 50px; top:60%; opacity: 0; transition: all .3s linear; } 
 当鼠标移入分栏时,“了解更多”字样的top属性值更改为58%,opacity:1,配合transition过渡属性,使其效果为由下向上浮入。 
#directory_up #directory_up_left:hover .bg h4 { opacity: 1; top: 58%; } 

三、总结

 在本次项目静态页面项目仿写中,通过CSS仿制了部分JS实现的效果,加深了CSS样式属性的理解以及运用,学会了查阅API文档。
	接下来是慢慢提升网页布局熟练度以及学习更多的CSS样式属性。 

本文地址:https://blog.csdn.net/hthththtt/article/details/107830639

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网