html怎样实现图片自动切换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html怎样实现图片自动切换相关的知识,希望对你有一定的参考价值。
1、首先,打开html编辑器,新建html文件,例如:index.html。
2、在index.html中的script标签中,填入js代码:setInterval('$("img").attr("src", "small3.png")', 1000);。
3、浏览器进入index.html页面中,此时显示出一张图片。
4、过1秒后,图片自动切换为另一张图片了。
参考技术A1 代码 (实现了图片轮播的效果)
<!doctype html>
<html>
<head>
<title>图片简单切换</title>
<script>
window.onload = function()
var pre = document.querySelector("#pre");
var next = document.querySelector("#next");
var pic = document.querySelector("#pic");
var index = 1;
next.onclick = function()
index++;
if(index > 5)
index = 1;
pic.src = "image/"+index+".jpg";
pre.onclick = function()
index--;
if(index < 1)
index = 5;
pic.src = "image/"+index+".jpg";
</script>
</head>
<body>
<input type="button" value="上一张" id="pre"></input>
<input type="button" value="下一张" id="next"></input> <br/>
<img src="image/1.jpg" id="pic"/>
</body>
</html>
2 静态页面效果图
3 注意的是我的图片命名是有规则的 是按照数字来的 1 .jpg 2.JPG...
4 实现图片轮播显示代码解释 :
//当点击下一个按钮的时候,图片显示image2.jpg用的是index变量来累加,当index超过了图片的数量,就让index =1;回到第一张图片。
pre.onclick = function()
index--;
if(index < 1)
index = 5;
pic.src = "image/"+index+".jpg";
参考技术B
html实现图片自动切换是通过js代码来控制的。实现思路如下:
创建一个图片数组,将需要轮播的图片放在这个数组中
通过js定时器去随机获取数组中的某一张图片在html中的固定位置显示即可。
实现代码如下:
<html>
<head>
<title>切换图片</title>
<script type = "text/javascript">
function displayNextImage() 显示下一张
x = (x === images.length - 1) ? 0 : x + 1;如果是最后一张,那么切换到第一张
document.getElementById("img").src = images[x];把获取到的值给img标签,让他显示
function displayPreviousImage() 显示下一张
x = (x <= 0) ? images.length - 1 : x - 1;获取数组中的上一个值
document.getElementById("img").src = images[x];把获取到的值给img标签,让他显示
function startTimer() 定时器,dom加载后调用
setInterval(displayNextImage, 3000);每隔3秒调用一次显示图片的方法。
var images = [], x = -1;定义imges数组存放图片名
images[0] = "image1.jpg";初始化第一张图
images[1] = "image2.jpg";初始化第二张图
images[2] = "image3.jpg"; 初始化第三张图
</script>
</head>
<body onload = "startTimer()">当页面加载完毕,调用startTimer方法 <img id="img" src="startpicture.jpg"/>img标签设置图片显示位置
<button type="button" 按钮点击后开始轮换图片onclick="displayPreviousImage()">上一张</button>
<button type="button" onclick="displayNextImage()">下一张</button>
</body>
</html>
jQuey实现轮播图效果
再平常的浏览器页面,轮播图都是必不可缺少的一个板块,在这总结了一下轮播图基本的一些样式
首先介绍一下,本文实现的轮播图的基本效果:
1. 3s自动切换图片,图片切换时提示点跟随切换
2. 鼠标划到图片上,自动切换轮播图停止
3. 指示点划过切换对应的图片,图片切换时提示点跟随切换
4. 点击上一页下一页按钮切换图片
5. 图片切换时有渐变的效果
下表面开始代码的书写
css代码
/*初始化浏览器默认样式*/ *{ margin: 0; padding: 0; } /*sowingMap*/ .sowingMap{ width: 800px; height: 500px; margin: 0 auto; position: relative; overflow: hidden; } /*imgPart*/ .imgPart{ width: 800px; height: 500px; position: absolute; } /*imgSwitch*/ .imgSwitch{ width: 800px; height: 500px; position: absolute; list-style: none; display: none; cursor: pointer; } .imgSwitch img{ width: 100%; height: 500px; } .imgShow{ display: block; } /*spotPart*/ .spotPart{ position: absolute; bottom: 0; height: 40px; left: 36%; } .spotPart p{ width: 20px; height: 20px; border-radius: 100%; background-color: #fff; float: left; margin-left: 20px; cursor: pointer; } /*提示点的选中颜色*/ .spotPart .spotColor{ background-color: #f00; } /*上一张下一张切换部分*/ .preImg , .nextImg{ width: 70px; height: 70px; border-radius: 100%; background-color: rgba(255,255,255,0.5); text-align: center; line-height: 70px; font-size: 30px; color: #f5f5f5; position: absolute; top: 190px; cursor: pointer; display: none; } .preImg{ left: -35px; text-indent: 25px; } .nextImg{ right: -35px; text-indent: -25px; }
html代码
<div class="sowingMap"> <ul class="imgPart"> <li class="imgSwitch imgShow"><img src="img/1.jpg"/></li> <li class="imgSwitch"><img src="img/2.jpg"/></li> <li class="imgSwitch"><img src="img/3.jpg"/></li> <li class="imgSwitch"><img src="img/4.jpg"/></li> <li class="imgSwitch"><img src="img/5.jpg"/></li> </ul> <div class="spotPart"> <p class="spotColor"></p> <p></p> <p></p> <p></p> <p></p> </div> <div class="loopChange"> <p class="preImg"><</p> <p class="nextImg">></p> </div> </div>
轮播图功能实现的js代码
//获取元素的个数 var count = $(‘.imgSwitch‘).length; var num = 0; var start = null; //业务1:实现3s钟自动循环切换图片,图片切换时提示点跟随切换,图片切换时有渐变的效果 function loopStart() { clearInterval(start); start = setInterval(function() { //首先清楚所有样式 $(‘.imgSwitch‘).hide(); //取余方式对num取值进行判断 num = (num + 1) % count; //图片渐入 $(‘.imgSwitch‘).eq(num).fadeIn(1000); $(‘.spotPart p‘).eq(num).addClass("spotColor").siblings().removeClass("spotColor"); }, 2000); } loopStart(); //业务2:鼠标划到图片上,轮播图停止自动切换,划出后继续播放 $(‘.imgSwitch‘).mouseover(function() { //鼠标划过停止 clearInterval(start); }); $(‘.imgSwitch‘).mouseout(function() { //鼠标划出 loopStart(); }); //业务三:指示点划过切换对应的图片,图片切换时提示点跟随切换 $(‘.spotPart p‘).mouseover(function() { clearInterval(start); //首先清楚所有样式 $(‘.imgSwitch‘).hide(); $(‘.imgSwitch‘).eq($(this).index()).fadeIn(1000); $(‘.spotPart p‘).eq($(this).index()).addClass("spotColor").siblings().removeClass("spotColor"); }); $(‘.spotPart p‘).mouseout(function() { loopStart(); }); //业务四:点击上一页下一页切换 $(‘.sowingMap‘).mouseover(function() { clearInterval(start); $(‘.loopChange p‘).show(); }); $(‘.sowingMap‘).mouseout(function() { loopStart(); $(‘.loopChange p‘).hide(); }); $(‘.preImg‘).click(function() { $(‘.imgSwitch‘).hide(); if(num <= 0) { num = 4; $(‘.imgSwitch‘).eq(num).fadeIn(1000); $(‘.spotPart p‘).eq(num).addClass("spotColor").siblings().removeClass("spotColor"); } else if(num <= 4) { $(‘.imgSwitch‘).eq(num-1).fadeIn(1000); $(‘.spotPart p‘).eq(num-1).addClass("spotColor").siblings().removeClass("spotColor"); num--; } }); $(‘.nextImg‘).click(function() { $(‘.imgSwitch‘).hide(); if(num >= 4) { num = 0; $(‘.imgSwitch‘).eq(num).fadeIn(1000); $(‘.spotPart p‘).eq(num).addClass("spotColor").siblings().removeClass("spotColor"); } else if(num >= 0) { $(‘.imgSwitch‘).eq(num+1).fadeIn(1000); $(‘.spotPart p‘).eq(num+1).addClass("spotColor").siblings().removeClass("spotColor"); num++; } });
注意,不要忘记引入jquery的语法库,不然会报错的哟!!!
对于上述索引范围的判断,介绍一种简单的办法,此种办法,使用的时一个数取于所获的元素的length值,不管如何,他的范围只是会0~a.length之间
num = (num + 1) % count;
ok,很方便的使用jQuery实现了轮播图效果,欢迎您提出宝贵的意见!!!
以上是关于html怎样实现图片自动切换的主要内容,如果未能解决你的问题,请参考以下文章
问,html中,图片在特定位置,每几秒钟自动切换一张的代码怎么写?求一种最简单的
Android 滑动切换(首页展示,图片新闻自动切换,循环切换,自动和手动)