📅  最后修改于: 2023-12-03 15:16:15.163000             🧑  作者: Mango
本文介绍了如何使用 JavaScript 创建缩略图滑块。此滑块可以让用户选择图片缩略图并切换到完整的图片视图。
在 HTML 中创建一个 div 元素,在其中添加多个缩略图,每个缩略图都必须有唯一的标识符。
<div id="thumbnail-slider">
<img src="thumbnail1.jpg" id="thumbnail1">
<img src="thumbnail2.jpg" id="thumbnail2">
<img src="thumbnail3.jpg" id="thumbnail3">
<img src="thumbnail4.jpg" id="thumbnail4">
<img src="thumbnail5.jpg" id="thumbnail5">
</div>
添加 CSS 样式来为缩略图滑块创建样式。样式可以根据需要进行调整。
#thumbnail-slider {
display: flex;
overflow-x: scroll;
scrollbar-width: none; /* 隐藏滚动条,需要浏览器支持 */
-webkit-overflow-scrolling: touch; /* 兼容移动设备 */
}
#thumbnail-slider::-webkit-scrollbar {
display: none; /* 隐藏滚动条,需要浏览器支持 */
}
#thumbnail-slider img {
width: 100px;
height: 100px;
object-fit: cover;
margin-right: 10px;
cursor: pointer;
border: 2px solid transparent;
}
#thumbnail-slider img.active {
border: 2px solid red;
}
添加 JavaScript 代码来实现缩略图滑块的交互。
var thumbnailSlider = document.getElementById("thumbnail-slider");
var thumbnails = thumbnailSlider.getElementsByTagName("img");
var activeThumbnail = 0;
for (var i = 0; i < thumbnails.length; i++) {
/* 为每个缩略图添加点击事件 */
thumbnails[i].addEventListener("click", function() {
/* 更新活动的缩略图 */
activeThumbnail = this.id.substring(9);
/* 更新每个缩略图的样式 */
updateThumbnails();
});
}
function updateThumbnails() {
for (var i = 0; i < thumbnails.length; i++) {
/* 添加或移除 active 类 */
if (i == activeThumbnail) {
thumbnails[i].classList.add("active");
} else {
thumbnails[i].classList.remove("active");
}
}
}
在 HTML 中添加需要切换的图片视图。
<div id="image-view">
<img src="image1.jpg" id="image">
</div>
更新 JavaScript 代码以响应缩略图的点击事件并更新视图。
var thumbnailSlider = document.getElementById("thumbnail-slider");
var thumbnails = thumbnailSlider.getElementsByTagName("img");
var activeThumbnail = 0;
var imageView = document.getElementById("image");
var images = ["image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg", "image5.jpg"];
for (var i = 0; i < thumbnails.length; i++) {
/* 为每个缩略图添加点击事件 */
thumbnails[i].addEventListener("click", function() {
/* 更新活动的缩略图 */
activeThumbnail = this.id.substring(9);
/* 更新每个缩略图的样式 */
updateThumbnails();
/* 更新图片视图 */
imageView.src = images[activeThumbnail];
});
}
function updateThumbnails() {
for (var i = 0; i < thumbnails.length; i++) {
/* 添加或移除 active 类 */
if (i == activeThumbnail) {
thumbnails[i].classList.add("active");
} else {
thumbnails[i].classList.remove("active");
}
}
}
本文介绍了如何使用 JavaScript 创建缩略图滑块,并在用户选择缩略图时切换到完整的图片视图。你可以在这个基础上进一步扩展和优化滑块的功能。