jQuery旋转的木马轮播图是一种常见的网页轮播图形式,它以木马的形式将图片一张一张地轮播展示在用户面前。本文将介绍如何通过使用jQuery库来编写一个简单的旋转木马轮播图。
<html> <head> <title>jQuery旋转的木马轮播图</title> </head> <body> <div id="slider"> <img src="img1.jpg" /> <img src="img2.jpg" /> <img src="img3.jpg" /> </div> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function() { var slider = $('#slider'); var imgCount = slider.children().length; var imgWidth = slider.children().first().width(); var imgHeight = slider.children().first().height(); var theta = 360 / imgCount; var radius = Math.round((imgWidth / 2) / Math.tan(Math.PI / imgCount)); slider.css('transform', 'rotateY(0deg)'); slider.children().each(function(index) { var angle = theta * index; $(this).css({ 'transform': 'rotateY(' + angle + 'deg) translateZ(' + radius + 'px)', 'width': imgWidth + 'px', 'height': imgHeight + 'px' }); }); var rotateAngle = 0; var rotateInterval = setInterval(function() { rotateAngle += theta; slider.css('transform', 'rotateY(' + rotateAngle + 'deg)'); }, 5000); slider.on('mouseenter', function() { clearInterval(rotateInterval); }); slider.on('mouseleave', function() { rotateInterval = setInterval(function() { rotateAngle += theta; slider.css('transform', 'rotateY(' + rotateAngle + 'deg)'); }, 5000); }); }); </script> </body> </html>
这段代码中,首先使用jQuery库获取了轮播图容器的一些信息,如图片数量、尺寸等。然后通过计算得出每张图片应旋转的角度和距离中心点的距离,利用CSS3的transform属性实现了木马效果。接着使用setInterval函数和事件监听来控制轮播功能,以及当鼠标悬停在轮播图上方时暂停轮播。