编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

JavaScript 图片轮播(js图片轮播如何无缝循环)

wxchong 2024-11-17 02:42:42 开源技术 70 ℃ 0 评论

实例1: 自动播放功能

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>网页标题</title>
<meta name="keywords" content="关键字列表" />
<meta name="description" content="网页描述" />
<link rel="stylesheet" type="text/css" href="" />
<style type="text/css">
*{margin:0;padding:0;}
body{color:#333;font-size:12px;line-height:20px;}
ul,li{list-style:none;}
#content{margin:0 auto;width:540px;}
#content .scroll_top{width:540px;height:51px;background:url(images/dd_scroll_top.gif) no-repeat;}
#content .scroll_mid{
width:533px;
padding:5px 0 5px 5px;
border-left:1px solid #d6d5d6;
border-right:1px solid #d6d5d6;
background:#f2f2f3;
}
#scroll_number{
float:right;
padding-right:10px;
}
#scroll_number li{
margin-top:5px;
width:13px;
height:13px;
line-height:16px;
border:1px solid #999;
cursor:pointer;
text-align:center;
}
#content .scroll_end{
width:540px;
height:8px;
background:url(images/dd_scroll_end.gif) no-repeat;
margin-bottom:10px;
}
.scroll_number_out{
}
.scroll_number_over{
background-color:#F96;
color:#FFF;
}
</style>
<script type="text/javascript">
//分析思路
//1.当页面加载完成后 使用定时器
//2.需要有一个定时器功能函数 这个函数的主要功能是实现图片轮播
//3.当鼠标经过图片上时 清除定时器
//4.当鼠标离开图片上时 重新调用定时器
//5.把鼠标放在li标签上面 要显示li标签上数字对应的图片 清除定时器
//6.当鼠标离开li标签时 图片继续滚动 重新调用定时器
//7.li标签要随着图片滚动而滚动 并且对应的li标签要高亮
//1.当页面加载完成时
var img_obj = null;
var timer;
var lis_obj = null; //用来保存li
window.onload = function(){
//先将所有的li上面的class清空
//需要获取到id="dd_scroll"对象
img_obj = document.getElementById("dd_scroll");
//实现定时器
timer = setInterval("scroll_img()",1000);
//通过id="scroll_number"来获取对象
lis_obj = document.getElementById("scroll_number").getElementsByTagName("li");
}

//主要是用于实现图片轮播
var i = 2;
function scroll_img(){
//先将所有的li标签的class都清空
for(var j=0;j<lis_obj.length;j++){
lis_obj[j].className = "";
}
lis_obj[i-1].className = "scroll_number_over";
//需要改变img标签的src属性
img_obj.src = "images/dd_scroll_"+i+".jpg";
i++;
//判断i的值
if(i>6){
i = 1;
}
}
//鼠标经过 清除定时器
function stopScroll(ind){
if(ind){
i = ind; //把值赋值给i
scroll_img(); //重新调用图片轮播函数
}
clearInterval(timer);
}
//鼠标离开时 重新调用定时器
function goon(){
timer = setInterval("scroll_img()",1000);
}
</script>
</head>
<body>
<div id="content">
<!--轮换显示的横幅广告图片-->
<div class="scroll_top"></div>
<div class="scroll_mid"> <img src="images/dd_scroll_1.jpg" alt="轮换显示的图片广告" id="dd_scroll" onmouseover="stopScroll()" onmouseout="goon()"/>
<div id="scroll_number">
<ul>
<li id="scroll_number_1" onmouseover="stopScroll(1)" class="scroll_number_over" onmouseout="goon()">1</li>
<li id="scroll_number_2" onmouseover="stopScroll(2)" onmouseout="goon()">2</li>
<li id="scroll_number_3" onmouseover="stopScroll(3)" onmouseout="goon()">3</li>
<li id="scroll_number_4" onmouseover="stopScroll(4)" onmouseout="goon()">4</li>
<li id="scroll_number_5" onmouseover="stopScroll(5)" onmouseout="goon()">5</li>
<li id="scroll_number_6" onmouseover="stopScroll(6)" onmouseout="goon()">6</li>
</ul>
</div>
</div>
<div class="scroll_end"></div>
</div>
</body>
</html>

图片规格:500px 180px 共六张图片


实例2: 鼠标点击功能

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
list-style: none;
}
div{
width: 665px;
height: 442px;
margin: 0 auto;
border: 5px solid gray;
position: relative;
}
/*5张图片的样式*/
ul,ul>li{
width: 665px;
height: 442px;
position: absolute;
}
ul>li{
display: none;
}
ul>li.active{
display: block;
}
/*5个点点点的样式*/
ol{
width: 150px;
height: 30px;
position: absolute;
left: 50%;
margin-left: -75px;
bottom: 20px;
}
ol>li{
width: 16px;
height: 16px;
margin: 7px;
float: left;
cursor: pointer;
border-radius: 50%;
background-color: rgba(255,255,255,0.5);
}
ol>li.active{
background-color: rgba(255,255,255,1);
}
div>a{
color: #999;
width: 30px;
height: 62px;
font-size: 24px;
text-align: center;
line-height: 62px;
text-decoration: none;
background-color: rgba(255,255,255,0.5);
position: absolute;
top: 190px;
}
div>a.prev{
left: 0;
}
div>a.next{
right: 0;
}
</style>
</head>
<body>
<div>
<!--5张图-->
<ul>
<li class="active"><a href=""><img src="img/1.jpeg"/></a></li>
<li><a href=""><img src="img/2.jpeg"/></a></li>
<li><a href=""><img src="img/3.jpeg"/></a></li>
<li><a href=""><img src="img/4.jpeg"/></a></li>
<li><a href=""><img src="img/5.jpeg"/></a></li>
</ul>
<!--5个点点点-->
<ol>
<li class="active"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
<!--左右箭头-->
<a class="prev" href="javascript:;"><</a>
<a class="next" href="javascript:;">></a>
</div>
<script type="text/javascript">
//获取左右箭头
var prev = document.getElementsByClassName("prev")[0];
var next = document.getElementsByClassName("next")[0];
//获取5个点点点
var ol_lis = document.getElementsByTagName("ol")[0].getElementsByTagName("li");
//获取5张图
var ul_lis = document.getElementsByTagName("ul")[0].getElementsByTagName("li");


var num = 0;
//下一张
next.onclick = function(){
num++;
if(num===ul_lis.length){
num = 0;
}
for(var i=0;i<ul_lis.length;i++){
ul_lis[i].className = "";//当我点击下一张是先把所有的图片隐藏
ol_lis[i].className = "";//当我点击下一张是先把所有的图片隐藏
}

ul_lis[num].className = "active";
ol_lis[num].className = "active";
}

//上一张
prev.onclick = function(){
num--;
if(num===-1){
num = ul_lis.length-1;
}
for(var j=0;j<ul_lis.length;j++){
ul_lis[j].className = "";//当我点击下一张是先把所有的图片隐藏
ol_lis[j].className = "";//当我点击下一张是先把所有的图片隐藏
}

ul_lis[num].className = "active";
ol_lis[num].className = "active";
}


//点点点
for(var k=0;k<ol_lis.length;k++){
//什么时候需要用索引 2个及其以上事物相关联的
ol_lis[k].index = k;//我给每一个点点点加一个自定义属性

ol_lis[k].onclick = function(){
for(var q=0;q<ol_lis.length;q++){
ol_lis[q].className = "";
ul_lis[q].className = "";
}

this.className = "active";
ul_lis[this.index].className = "active";

//此时左右按钮和点点点是两条路 我们需要让他们执行同样的规则
//所以num = 当前被点击的li的自定义属性
num = this.index;
}
}
</script>
</body>
</html>

图片规格:665px 442px 共六张图片

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表