JQuery自动轮播封装

1.HTML部分

 <script src="./jquery.js/jquery-1.8.3.js"></script>
    <div class="con">
        <!-- //图片 -->
        <ul>
            <li class="on"><img src="../img/cont-1.jpg" alt=""></li>
            <li><img src="../img/cont-2.jpg" alt=""></li>
            <li><img src="../img/cont-3.jpg" alt=""></li>
        </ul>
        <!-- 按钮 -->
        <a href='#' class="con1 left">&lt;</a>
        <a href='#' class="con1 right">&gt;</a>
        <!-- 小圆点 -->
        <ol>
            <li class="aution"></li>
            <li></li>
            <li></li>
        </ol>
    </div>

2.css部分

<style>
        * {
            margin: 0;
            padding: 0;
        }
        
        ul,
        li {
            list-style-type: none;
        }
        
        div {
            width: 620px;
            height: 350px;
            position: relative;
            margin: 50px auto;
        }
        
        .con .right {
            right: 0;
        }
        
        ul {
            width: 620px;
            height: 350px;
        }
        
        ul li {
            display: none;
        }
        
        ul li.on {
            display: block;
        }
        
        .con1 {
            position: absolute;
            text-decoration: none;
            font-size: 30px;
            top: 50%;
            color: #fff;
            width: 40px;
            height: 50px;
            background: rgba(0, 0, 0, 0.3);
            text-align: center;
            line-height: 50px;
            margin-top: -25px;
            cursor: pointer;
            display: none;
        }
        
        .con1:hover {
            background: rgba(0, 0, 0, 0.6);
        }
        
        ol {
            position: absolute;
            bottom: 15px;
            left: 50%;
            margin-left: -25px;
        }
        
        ol li {
            width: 10px;
            height: 10px;
            float: left;
            border-radius: 50%;
            border: 1px solid gray;
            margin-right: 10px;
        }
        
        ol li.aution {
            background: white;
            border-color: white;
        }
    </style>

3.jquery部分

<script>
        var index = 0; //添加索引
        var len = $('ul li').length;
        var t = setInterval(move, 2000); //定时器事件

        //鼠标移入事件
        $('.con').mouseenter(function() {
            clearInterval(t);
            $('.con1').css('display', 'block'); //鼠标移入的时候让左右按钮显示
        }).mouseleave(function() { //鼠标离开时间
            t = setInterval(move, 2000);
            $('.con1').css('display', 'none'); //鼠标移出的时候让左右按钮消失
        });



        $('.left').click(move); //点击左按钮
        $('.right').click(moveLeft); //点击右按钮

        //点击小圆点小圆点跟随图片移动
        $('ol li').click(function() {
            $(this).addClass('aution').siblings().removeClass('aution');
            index = $(this).index();
            $('ul li').eq(index).addClass('on').siblings().removeClass('on');
        })

        function move() {
            index++;
            if (index == len) index = 0;
            $('ul li').eq(index).attr('class', 'on').siblings().removeAttr('class'); //左按钮点击图片跟随移动
            $('ol li').eq(index).addClass('aution').siblings().removeClass('aution'); //左点击的时候小圆点跟随左按钮移动

        }

        function moveLeft() {
            index--;
            if (index == -1) index = len - 1;
            $('ul li').eq(index).attr('class', 'on').siblings().removeAttr('class'); //右按钮移动时间
            $('ol li').eq(index).addClass('aution').siblings().removeClass('aution'); //右点击的时候小圆点跟随右按钮移动

        }

4.效果图

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 jQuery 封装插件轮播图的完整代码,可以自定义每张图片的停留时间: HTML: ``` <div class="slider"> <div class="slider-wrapper"> <img src="img/img1.jpg" alt="image1"> <img src="img/img2.jpg" alt="image2"> <img src="img/img3.jpg" alt="image3"> </div> </div> ``` CSS: ``` .slider { width: 100%; overflow: hidden; position: relative; } .slider-wrapper { width: 300%; position: relative; left: 0; transition: left 0.5s; } .slider-wrapper img { width: 33.33%; float: left; } .slider .slider-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; background-color: #000; color: #fff; text-align: center; font-size: 20px; line-height: 30px; cursor: pointer; border-radius: 50%; z-index: 1; } .slider .slider-btn.left { left: 20px; } .slider .slider-btn.right { right: 20px; } ``` JavaScript: ``` (function($) { $.fn.slider = function(options) { var settings = $.extend({ delay: 3000 }, options); var slider = this; var wrapper = slider.find('.slider-wrapper'); var images = wrapper.find('img'); var numImages = images.length; var imageWidth = 100 / numImages; var currentImage = 1; var interval; function init() { wrapper.css('width', numImages * 100 + '%'); images.css('width', imageWidth + '%'); slider.append('<div class="slider-btn left">‹</div><div class="slider-btn right">›</div>'); slider.find('.slider-btn').on('click', function() { var direction = $(this).hasClass('left') ? -1 : 1; changeImage(currentImage + direction); }); startSlider(); } function startSlider() { interval = setInterval(function() { changeImage(currentImage + 1); }, settings.delay); } function stopSlider() { clearInterval(interval); } function changeImage(index) { if (index < 1) { index = numImages; } else if (index > numImages) { index = 1; } var left = (index - 1) * -100 / numImages; wrapper.css('left', left + '%'); currentImage = index; } init(); slider.hover(function() { stopSlider(); }, function() { startSlider(); }); }; }(jQuery)); $('.slider').slider({ delay: 4000 }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值