轮播图 带有缩略图

本文介绍了如何根据设计需求实现一个带有缩略图和放大效果的轮播图。在实现过程中,面临了缩略图点击放大、缩小以及超过5个时的特殊处理,特别是当缩略图选中为第一个或第五个时,需要进行特定的滚动判断。通过计算当前元素的位置和相邻元素的数量,调整轮播图的margin-left实现平滑过渡。此外,还需注意在点击上一页或下一页时,如果当前缩略图位于边界,需相应地动画滚动到首尾。
摘要由CSDN通过智能技术生成

设计给了个图 要求轮播带有 缩略图 选样式还要放大 如下图
在网上找了下没有有相似的 但还是与设计图有些差距 无奈
找了原来的代码 以此为基础 改呗

主要的还是缩略图的点击 放大 缩小 以及大于5时选中第5个小图时 整体滚动就是个小的轮播
无论是点击上一个、下一个、还是缩略图 当选中的缩略图为 第一个或第五个时(下图选中放大的为第三个) 做判断
第一个:获取当前元素前面有几个兄弟元素 如果大于等于4(之所以是4 缩略图最多展示5个 在去掉选中的)则向右动画margin-left四个图片尺寸(尺寸=图片宽度+图片间隔)
否则小于4 则向右动画margin-left 相应数量图片尺寸
第五个:与第一个相反 获取的是当前元素后面的兄弟元素

当当前缩略图已经是第一个时 点击上一页 则动画到最后一个
当当前缩略图已经是最后一个时 点击下一页 则动画到第一个

注:判断第一个与第五个时用的是 $(".breviary").find(".hover").position().left; 看偏移量 如果图片宽度 或其他位置改变 这个偏移量需要改

					<div id="carousel">
						<ul class="picture">
							<li><img src="img/z1.jpg"></li>
							<li><img src="img/z2.png"></li>
							<li><img src="img/z3.png"></li>
							<li><img src="img/z4.jpg"></li>
							<li><img src="img/z5.png"></li>
							<li><img src="img/z6.jpg"></li>
							<li><img src="img/z7.png"></li>
						</ul>
						<span class="pre">
							<div class="info_sprite"></div>
						</span>
						<span class="next">
							<div class="info_sprite"></div>
						</span>
						<span class="banner_bg"></span>
						<div class=" breviary">
							<ul class="follow">
								<li class="hover"><img src="img/z1.jpg"></li>
								<
以下是一个带有缩略图的相册导航特效的示例代码: HTML: ```html <div class="gallery"> <div class="thumbnails"> <a href="#" class="active"><img src="image1.jpg" alt="Image 1"></a> <a href="#"><img src="image2.jpg" alt="Image 2"></a> <a href="#"><img src="image3.jpg" alt="Image 3"></a> <a href="#"><img src="image4.jpg" alt="Image 4"></a> </div> <div class="main-image"> <img src="image1.jpg" alt="Image 1"> </div> </div> ``` CSS: ```css .gallery { display: flex; flex-direction: column; align-items: center; } .thumbnails { display: flex; justify-content: center; margin: 20px 0; } .thumbnails a { margin: 0 10px; } .thumbnails a img { width: 100px; height: 100px; object-fit: cover; border: 2px solid #fff; cursor: pointer; } .thumbnails a.active img { border-color: #f00; } .main-image { width: 600px; height: 400px; overflow: hidden; } .main-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .main-image img.active { transform: scale(1.1); } ``` JavaScript: ```javascript const thumbnails = document.querySelectorAll('.thumbnails a'); const mainImage = document.querySelector('.main-image img'); thumbnails.forEach(thumbnail => { thumbnail.addEventListener('click', (e) => { e.preventDefault(); const activeThumbnail = document.querySelector('.thumbnails a.active'); activeThumbnail.classList.remove('active'); thumbnail.classList.add('active'); const newImageSrc = thumbnail.querySelector('img').src; mainImage.src = newImageSrc; mainImage.classList.add('active'); setTimeout(() => { mainImage.classList.remove('active'); }, 300); }); }); ``` 上述代码实现了一个简单的相册导航特效,其中包含了主要的 HTML、CSS 和 JavaScript 代码。该特效通过缩略图和主图之间的切换来实现,用户可以点击缩略图来查看不同的图片。缩略图上的边框颜色会随着用户的点击而变化,以表示当前选中的图片。在切换图片时,主图会以一定的动画效果进行缩放,以提高用户体验。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值