视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
html中用JS实现图片轮播的实例代码
2020-11-27 20:18:22 责编:小采
文档
 1.首先是效果图,要在网页中实现下图的轮播效果,有四张图片,每张图片有自己的标题,然后还有右下角的小方框,鼠标悬浮在小方框上,会切换到对应的图片中去。

2.先是HTML中的内容,最外层是轮播图整个的容器“slideShowContainer”,里边是用来装图片的“picUl”和用来显示小方框的“dotUl”,以及用来装标题的“titleDiv”。

<div id="slideShowContainer">
<ul id="picUl">
<li><a href="#"><img src="img/lunbo1.jpg" alt=""/></a></li>
<li><a href="#"><img src="img/lunbo2.jpg" alt=""/></a></li>
<li><a href="#"><img src="img/lunbo3.jpg" alt=""/></a></li>
<li><a href="#"><img src="img/lunbo4.jpg" alt=""/></a></li>
</ul>
<ul id="dotUl">
<li class="selected">1</li>
<li class="unselected">2</li>
<li class="unselected">3</li>
<li class="unselected">4</li>
</ul>
<div id="titleDiv">
<span class="show"><a href="#">党政机关公务用车有了统一标识</a></span>
<span class="hide"><a href="#">“洛阳创新”亮相第52届巴黎航展</a></span>
<span class="hide"><a href="#">中国河洛乡愁摄影主题公园揭牌</a></span>
<span class="hide"><a href="#">洛阳机场建成生态停车场</a></span>
</div>
</div>

3.然后是css中的样式

#slideShowContainer{
 width: 425px;
 height: 325px;
 margin-top: 10px;
 margin-left: 10px;
 overflow: hidden;
 position: relative;
}
#slideShowContainer img{
 width: 425px;
 height: 325px;
 transition: all 0.6s;
}
#slideShowContainer img:hover{
 transform: scale(1.07);
}
#picUl{
 list-style: none;
}
#dotUl{    
 list-style: none;
 display: flex;
 flex-direction: row;
 position: absolute;  //使用绝对布局,固定于左下角
 right: 21px;
 bottom: 15px;
 z-index: 2;  //通过设置z-index的值大于#titleDiv中z-index的值,使其浮在标题栏的上方
}
#titleDiv{
 position: absolute;
 width: 100%;
 height: 42px;
 bottom: 0px;
 left: 0px;
 background-color: #000000;
 opacity:0.6;  //设置透明度,实现标题栏半透明效果
 z-index: 1;
}
#titleDiv>span{
 line-height: 42px;
 color: #FFFFFF;
 margin-left: 20px;
 width: 270px;
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
}
#titleDiv>span>a{
 color: #FFFFFF;
}
.selected{
 width: 12px;
 height: 12px;
 background-color: #FFFFFF;
 color: transparent;
 margin-left: 9px;
}
.unselected{
 width: 12px;
 height: 12px;
 background-color: #0069AD;
 color: transparent;
 margin-left: 9px;
}
.hide{
 display: none;
}
.show{
 display: block;
}
4.通过js控制,动态修改相应的样式,达到图片轮播的效果
/*图片轮播*/
var slideShowContainer = document.getElementById("slideShowContainer");
var pic = document.getElementById("picUl").getElementsByTagName("li");
var dot = document.getElementById("dotUl").getElementsByTagName("li");
var title = document.getElementById("titleDiv").getElementsByTagName("span");
var index = 0;
var timer = null;
/*定义图片切换函数*/
function changePic (curIndex) {
 for(var i = 0;i < pic.length;++i){
 pic[i].style.display = "none";
 dot[i].className = "unselected";
 title[i].className = "hide"
 }
 pic[curIndex].style.display = "block";
 dot[curIndex].className = "selected";
 title[curIndex].className = "show";
}
/*index超出图片总量时归零*/
function autoPlay(){
 if(+index >= pic.length){
 index = 0;
 }
 changePic(index);
 index++;
}
/*定义并调用自动播放函数*/
timer = setInterval(autoPlay,1500);
/*鼠标划过整个容器时停止自动播放*/
slideShowContainer.onmouseover = function(){
 clearInterval(timer);
}
/*鼠标离开整个容器时继续播放下一张*/
slideShowContainer.onmouseout = function(){
 timer = setInterval(autoPlay,1500);
}
/*遍历所有数字导航实现划过切换至对应的图片*/
for(var i = 0;i < dot.length;i++){
 dot[i].onmouseover = function(){
 clearInterval(timer);
 index = this.innerText-1;
 changePic(index)
 }
}

下载本文
显示全文
专题