当先锋百科网

首页 1 2 3 4 5 6 7

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旋转的木马轮播图

这段代码中,首先使用jQuery库获取了轮播图容器的一些信息,如图片数量、尺寸等。然后通过计算得出每张图片应旋转的角度和距离中心点的距离,利用CSS3的transform属性实现了木马效果。接着使用setInterval函数和事件监听来控制轮播功能,以及当鼠标悬停在轮播图上方时暂停轮播。