构建循环幻灯片的最简单的纯Javascript代码
The Simplest pure Javascript code to build a looping slideshow
我只是想学习javascript代码最简单的方法来构建幻灯片>它是如何理解一系列的div s or img
并一个接一个地重复它们的??我知道这对你来说很简单,但我才刚刚开始!: D
从概念上讲,创建自动循环图像滑块的一种方法是让JavaScript代码反复运行(使用setInterval()
或setTimeout()
)来隐藏和显示页面上的图像,每次一个。
你只需要把你的图像元素放在一个数组中,你可以随意更新。
下面是一个没有任何动画效果的基本示例:(function() {
var selectedIndex = -1;
var imgs = document.querySelectorAll(".slideshow img"),
left = document.querySelector(".slideshow .left"),
right = document.querySelector(".slideshow .right"),
current = document.querySelector(".slideshow .current");
var numSeconds = 2;
var timeout;
setIndex(0);
left.addEventListener("click", function() {
setIndex(selectedIndex - 1);
});
right.addEventListener("click", function() {
setIndex(selectedIndex + 1);
});
function setIndex(i) {
if (timeout) {
clearTimeout(timeout);
}
if (selectedIndex >= 0) {
imgs[selectedIndex].style.display = "none";
}
if (i >= imgs.length) {
selectedIndex = 0;
} else if (i < 0) {
selectedIndex = 0;
} else {
selectedIndex = i;
}
imgs[selectedIndex].style.display = "inline-block";
current.innerHTML = (selectedIndex + 1) + "/" + imgs.length;
timeout = setTimeout(function() {
setIndex(selectedIndex + 1)
}, numSeconds * 1000);
}
})();
.slideshow img {
display: none;
border: 1px solid black;
}
.slideshow .controls {
max-width: 255px;
text-align: center;
}
.slideshow .left {
float: left;
cursor: pointer;
}
.slideshow .right {
float: right;
cursor: pointer;
}
<div class="slideshow">
<img src="http://placehold.it/250x150/000000/ffffff" />
<img src="http://placehold.it/250x150/ff0000/ffffff" />
<img src="http://placehold.it/250x150/00ff00/ffffff" />
<img src="http://placehold.it/250x150/0000ff/ffffff" />
<img src="http://placehold.it/250x150/ffffff/000000" />
<div class="controls"> <span class="left"><<</span>
<span class="current"></span>
<span class="right">>></span>
</div>
</div>
有很多JavaScript库和jQuery扩展,你可以使用它们来获得更多的功能,而不必编写太多代码。我鼓励您探索已经开发的内容,以了解不同的实现。
相关文章:
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- JavaScript代码问题:我正在将对象转换为数组
- Javascript阻止其他Javascript代码
- JavaScript代码未正确检查ajax请求
- 如何调试Javascript代码或函数
- 为什么我在这个javaScript代码中使用NaN
- 将javascript代码转换为jquery代码时出错
- 如何从Objective-C代码中调用javascript代码
- 有什么工具可以轻松读取javascript代码吗
- 这个javascript代码是如何编写的
- 如何解密此javascript代码
- SIMPLE Javascript代码,用于显示谷歌电子表格中单个字段的数据
- HTML标记,包含带引号的JavaScript代码中的引号
- 如何在Win8Metro应用程序的Javascript代码中捕获自己的C#事件
- addEventListener的Javascript代码不工作!?(单击时打开放大的img)
- JavaScript代码无法在表单上呈现部分
- 以下 JavaScript 代码与 Facebook 相关
- 使用解析为javascript源的.php,如何使用条件语句将javascript代码封装在php括号之间