目录
一、效果展示
主要通过,设置点击事件,定时器,if判断,排他思想来实现,简单的轮播图效果,是非常普通的轮播样式。
二、H5的布局
可以使用自己的图片,需要注意路径,不注意路径会出现错误,呈现不出所需要的效果。
可以使用自己的图片,需要注意路径,不注意路径会出现错误,呈现不出所需要的效果。
可以使用自己的图片,需要注意路径,不注意路径会出现错误,呈现不出所需要的效果。
-
-
<div class="banner">
-
<ul class="imgList">
-
<li>
<img src="1.png"/>
</li>
-
<li>
<img src="2.jpg"/>
</li>
-
<li>
<img src="3.jpg"/>
</li>
-
<li>
<img src="4.jpg"/>
</li>
-
-
</ul>
-
<div class="circle">
-
</div>
-
</div>
三、CSS的布局
第一步
第一个盒子的布局
-
*{
-
padding:
0px;
-
margin:
0px;
-
}
-
.banner{
-
width:
600px;
-
margin: auto;
-
border:
10px solid green;
-
height:
350px;
-
position: relative;
-
overflow: hidden;
-
position: relative;
-
}
第二个盒子
主要注意两个盒子之间的定位,还有浮动
-
-
.imgList
img{
-
width:
600px;
-
height:
350px;
-
}
-
.imgList{
-
/* 绝对定位 */
-
position: absolute;
-
}
-
.imgList
li{
-
float
:left;
-
margin-right:
20px;
-
list-style: none;
第二步
给图片下的小圆点进行布局,需要注意,定位,浮动,在这里可以设置一个hover,来为JS实现排他思想做布局,这样所呈现的效果就是,可以明确的显示出我点击了那个小圆点,有很直观的效果。
-
-
.circle{
position: absolute;
bottom:
15px;
left:
50%;
transform:
translateX(-
50%);}
-
.circle
a{
-
width:
15px;
-
height:
15px;
-
background: green;
-
display: block;
-
border-radius:
50%;
-
opacity: .
8;
-
float: left;
-
margin-right:
10px;
-
}
-
.circle
a
.hover{
-
background: black;
-
opacity: .
7;
-
}
-
-
第三步
给图片实现,滑动效果,要给left设置一个初始值,这样就会减少不会移动的BUG,需要注意一下的小小细节。
-
ul {
-
-
transition-duration:
0.3s;
-
left:
0px;
-
-
}
四、JS的布局
第一步
基本的获取元素
-
// 确定ul的宽度 动态的创建小圆点
-
var imgList =
document.
querySelector(
'.imgList');
-
var circle =
document.
querySelector(
'.circle');
-
var flag =
true;
-
-
//给ui标签设置宽度
-
imgList.
style.
width =imgList.
children.
length*
620+
'px';
-
-
//下面动态创建a标签
-
for (
var i =
0; i < imgList.
children.
length; i++) {
-
var aNode =
document.
createElement(
'a');
-
-
//我们在这里创建index属性来记录索引值
-
aNode.
setAttribute(
'index',i);
-
circle.
appendChild(aNode);
-
}
第二步
使用点击事件,可以通过小圆点来切换图片,还有排他思想,来呈现更加直观的点击效果
-
circle.
addEventListener(
'click',
function(
e){
-
var cirCle = e.
target.
getAttribute(
'index');
-
if(e.
target.
nodeName==
'A'){
-
imgList.
style.
left = cirCle*-
620+
'px';
-
for(j=
0;j<circle.
children.
length;j++){
-
circle.
children[j].
className=
'';
-
}
this.
children[cirCle].
className=
'hover';
-
}
-
})
第三步
通过,定义新的值,设置一个定时器,在里面使用if判断来实现自动点击小圆点,从而实现自动播放的效果,主要注意其中i值的变化,来进行判断,输出,不然会出现混乱现象,需要多加注意。
有大致的逻辑后,在通过值来实现自动点击的效果的定时器,实现最简单的轮播,也可以使用滑动动画实现,本人觉得这种实现方式比较简单,所以使用此方法。
-
var i =
1;
-
setInterval(
function(
){
-
if(i<=
3){
-
circle.
children[i].
click();
-
i++;
-
}
else{
-
i=
0;
-
circle.
children[
0].
click();
-
i++;
-
}
-
},
2000)
五、源码评论区自取
在评论区留下自己的QQ邮箱,看到会立马发送。还有很多可以优化和添加各种实用的效果,我会在以后的时间,发表更加完善的轮播图,更具有使用性。也可以关注博主互相分享经验,非常欢迎大佬指导。(本人小白,可能不是很完善,会在今后补齐)
转载:https://blog.csdn.net/yzq0820/article/details/125712299
查看评论