连续图像转盘(又名滑块)是在您的网站上展示多个图像、内容等的好方法。
创建滑块是一项相当简单的任务。我们今天将使用jQuery创建一个可以处理您向它抛出的任何数量的图像的查询。
1.在滑块中插入图像列表。
<div id="slider"> <ul> <li><img src="1.jpg" alt="Image Alt" /></li> <li><img src="2.jpg" alt="Image Alt" /></li> <li><img src="3.jpg" alt="Image Alt" /></li> <li><img src="4.jpg" alt="Image Alt" /></li> <li><img src="5.jpg" alt="Image Alt" /></li> </ul> </div>
2.将下一个/上一个控制按钮添加到滑块中。
<p id="links"> <a href="#" id="previous">Prev</a> <a href="#" id="next">Next</a> </p>
3.在文档中加载所需的jQuery库和jQuery轻松插件(用于轻松功能)。
<script src="/path/to/cdn/jquery.min.js" defer></script> <script src="/path/to/jquery.easing.min.js" defer></script>
4.滑块和控件的主要CSS样式。
/* Core Styles */ #slider { width:400px; overflow:hidden; border: 10px solid #4C4C4C; height:266px; position:relative; margin:auto; } #slider ul { list-style-type: none; margin: 0; padding: 0; position: absolute; top: 0; left: 0; display: flex; } #slider ul li img { display: block; } /* Control Styles */ #links { width:420px; display: flex; margin: 0 auto; } #links a { display:block; width:210px; background:#6C0204; height:50px; line-height:50px; color:#D5D5D5; text-decoration:none; text-align:center; } #links a:hover { background:#A51D1F; color:#fff; }
5.用于激活滑块的核心JavaScript(jQuery脚本)。
$(window).on('load', function() { "use strict"; const imageCount = $('#slider ul li').length; const imageWidth = $('#slider ul li img').first().width(); const totalWidth = (imageWidth * imageCount) + 'px'; let leftPosition = 0; let counter = 0; $('#slider ul').css('width', totalWidth); // next button $('#next').click(function() { counter++; if (counter === imageCount) { $('#slider ul').clone().appendTo('#slider'); $('#slider ul').last().css('left', imageWidth + 'px'); leftPosition = `-${totalWidth}`; $('#slider ul').last().animate({ left: 0 }, 700, 'easeInQuad'); $('#slider ul').first().animate({ left: leftPosition }, 700, 'easeInQuad', function() { $('#slider ul').first().remove(); }); counter = 0; } else { leftPosition = `-${counter * imageWidth}px`; $('#slider ul').animate({ left: leftPosition }, 700, 'easeInQuad'); } }); // previous button $('#previous').click(function() { counter--; if (counter < 0) { counter = imageCount - 1; $('#slider ul').clone().appendTo('#slider'); $('#slider ul').last().css('left', `-${totalWidth}`); leftPosition = `-${counter * imageWidth}px`; $('#slider ul').last().animate({ left: leftPosition }, 700, 'easeInQuad'); $('#slider ul').first().animate({ left: imageWidth + 'px' }, 700, 'easeInQuad', function() { $('#slider ul').first().remove(); }); } else { leftPosition = `-${counter * imageWidth}px`; $('#slider ul').animate({ left: leftPosition }, 700, 'easeInQuad'); } }); });