发表于: 2019-08-24 23:38:38

1 779


今天完成的事情:


               1.完成任务十五的大部分重构

               2. 优化轮播图效果。

                

明天计划的事情:

     

               彻底完成CSS阶段的任务。


 遇到的问题:

               

  1.【solved】完成导航栏

借助checkbox的checked状态,因为复选按钮可以反复选择。根据checked的状态,才确认下拉列表框是否能够显示隐藏。

<span "visible-xs">
<a href=""><img src="http://jns.img.bucket.ks3-cn-beijing.ksyun.com/skill/skill_html/images/home-logo-hs.png" alt=""></a>
<div "nav-toggle-box">
<label for="nav-toggle">
<span></span>
<span></span>
<span></span>
</label>
</div>
</span>
<input type="checkbox" name="checkbox" id="checkbox">
<div "navul">
<ul>
<li><a href="">首页</a></li>
<li><a href="">职业</a></li>
<li><a href="">推荐</a></li>
<li><a href="">关于</a></li>
</ul>
</div>

#checkbox{
displaynone;
}
#checkbox:checked ~ .navul{
displayblock;
}
.navul{
@media screen and (max-width768px){
displaynone;
}

制作点击按钮

用媒体查询把768px以上的分辨率显示屏把按钮隐藏

最后再用hover属性制作鼠标经过时的不同样式

      2.【solved】css轮播图

先给父元素盒子相对定位,宽度100%沾满整个屏幕,溢出部分隐藏,

存放图片的盒子用绝对定位,宽度300vw,因为图片是横向排列,所以要设置的宽度是父元素的图像的倍数,

在利用white-space:nowra;不换行属性防止图片换行。

<div "banner">
<ul>
<li>
<img src="../img/img1/banner1.png" alt="">
</li>
<li>
<img src="../img/img1/banner2.jpg" alt="">
</li>
<li>
<img src="../img/img1/banner3.png" alt="">
</li>
</ul>
</div>
.banner{
positionabsolute;
width300%;
visibilityhidden;
white-spacenowrap;
ul{
margin0;
padding0;
font-size0;
@include flex(start,start );
li{
list-stylesquare;
background#fafafa;
width100vw;
img{
width100vw;
}
}
}
}


【方法一】通过animation绑定图片实现自动轮播的动画效果。

animation属性:动画;
定义和用法:
animation 属性是一个简写属性,用于设置六个动画属性:
(1)animation-name:规定需要绑定到选择器的keyframe(关键帧)名称。
(2)animation-duration:规定完成动画所花费的时间,以秒和毫秒计算。
值:time,0意味着没有动画效果。
(3)animation-timing-function:规定动画的速速曲线,如何完成一个周期。
值:linear 均速;ease 先慢后快,结束前变慢(默认);ease-in 低速开始;ease-out 低速结束;ease-in-out 低速开始和结束;cubic-bezie(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值;
(4)animation-delay:规定在动画开始之前的延迟。
值:time 默认值为0;
(5)animation-iteration-count:规定动画应播放的次数。
值:n 一个数字,定义播放多少次动画 默认值1;
lnfinite:动画无限次播放;
(6)animation-direction:规定是否应该轮流反向播放动画。
值:normal 正常;reverse:反向播放;alternate      在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放;alternate-reverse   在奇数次(1、3、5...)反向播放,在偶数次(2、4、6...)正向播放;

(7)animation-play-state: 规定动画是否正在运行或暂停。默认是 "running"。

(8)animation-fill-mode: 规定对象动画时间之外的状态。


通过animation: loop 10s linear infinite;绑定图片的动画效果。时间是十秒

然后创建一个动画规则,总共轮播三张图片,总共耗时10秒钟,一张图片大约3.3秒

一张图片切换耗时800ms(0.8秒),停留2600ms (2.6秒)


红色部分

0%---26%图片停留时间,停留2600ms (2.6秒)

26%---34%图片切换播放时间,图片切换耗时800ms(0.8秒)


黄色部分

设置图片在切换时的位置

第一张图片位置0   0

第二张图片位置-33.33% 0

第三张图片位置66.7% 0


最后一行为0  0 一共播放了三张图片耗时十秒,播放完位置在跳转到第一张也就是回到了起点从新播放,


这里用了三张图、所以三张图的定位是0 33.3% 66.6%;

然后三张图的时间总共是10s,从0~100%

这里图片逗留时间是30%。切换时间是5%。



【方法二】用checkbox和lable实现手动点击轮播

流程图解释:

(1)把input[type="radio"]的一组按钮用设置相同name属性的方向进行关联,使得这组input可以切换。

(2)用label标签可单向绑定input,点击label即可使相应的input被:checked。

(3)多个label标签可绑定同一个input,分别为左右切换按钮和底部指示器设置一组label。

(4)当input被:checked后,通过选择器可控制图片或label标签的样式(模拟JS的点击事件)。

(5)input:nth-of-type(n)是选择input的父元素的第n个子元素,也可以给input加上id来代替。

(6)input ~选择input之后的兄弟元素(一定是之后,渲染关系不可逆;而且一定是兄弟,如果是子集,请加上后代选择器)。

    

收获:

           巩固了自身知识。


返回列表 返回列表
评论

    分享到