美文网首页
淡入淡出轮播插件(Js)

淡入淡出轮播插件(Js)

作者: 闪电西兰花 | 来源:发表于2018-09-22 15:12 被阅读0次
  1. 该插件由轮播图片、向前向后按钮及底部分页器3部分组成
  2. 首先,搭建页面dom结构,href="javascript:void(0)表示a标签不跳转,保留样式,不做任何操作
<div class="carousel">
    <!-- 轮播图片 -->
    <ul class="items">
        <li>
            <a href="javascript:void(0)">
                <img src="imgs/26.jpg" alt="">
            </a>
        </li>
        <li>
            <a href="javascript:void(0)">
                <img src="imgs/25.jpg" alt="">
            </a>
        </li>
        <li>
            <a href="javascript:void(0)">
                <img src="imgs/24.jpg" alt="">
            </a>
        </li>
        <li>
            <a href="javascript:void(0)">
                <img src="imgs/23.jpg" alt="">
            </a>
        </li>

    </ul>
    <!-- 向前向后按钮 -->
    <a href="javascript:void(0)" class="pre"><</a>
    <a href="javascript:void(0)" class="next">></a>
    <!-- 分页器 -->
    <ul class="bullet">
        <li class="active"></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</div>
  1. 再看下样式的写法,值得注意的是2个居中写法
<style>
    /* reset */
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    li {
        list-style: none;
    }
    a {
        text-decoration: none;
    }

    .carousel {
        position: relative;
        width: 480px;
        height: 360px;
        margin: 20px auto;
        overflow: hidden;
    }
    .pre,
    .next {
        /* 相对.carousel垂直方向的50%,再减去自身高度一半,实现上下居中 */
        position: absolute;
        top: 50%;
        margin-top: -25px;
        width: 50px;
        height: 50px;
        line-height: 50px;
        text-align: center;
        color: #fff;
        font-size: 30px;
        opacity: .8;
    }
    .pre:hover,
    .next:hover {
        font-size: 60px;
    }
    .pre {
        left: 10px;
    }
    .next {
        right: 10px;
    }
    .bullet {
        /* 相对.carousel水平方向的50%,再使用translate让自己向左平移自身宽度的50%,实现水平居中 */
        position: absolute;
        bottom: 10px;
        left: 50%;
        transform: translate(-50%);
    }
    .bullet li {
        display: inline-block;
        width: 16px;
        height: 4px;
        background: #fff;
        cursor: pointer;
    }
    .bullet li.active {
        background: #666;
    }
</style>
  1. 最后看逻辑部分,大致功能有:向前向后按钮的点击操作(显示下一张和上一张),底部分页器的点击操作(点击分页器显示与之下标对应的图片),自动轮播的功能
<script>
    var $pre = $(".pre"),
        $next = $(".next"),
        $bullet = $(".bullet"),
        $items = $(".items").children(),
        imgCount = $items.length;

    var curIdx = 0,
        isFade = false;         // 设置动作锁,防止用户频繁点击频繁执行,浪费性能

    play(0);
    autoPlay();

    $pre.on('click',function(){
        playPre ();
    })

    $next.on('click',function(){
        playNext();
    })

    $bullet.find('li').on('click',function(){
        var thisIdx = $(this).index();
        play(thisIdx);
    })

    // play()的功能是传哪个下标就显示哪张图片
    // 将curIdx的图片淡出,idx的图片淡入
    // 同时设置底部分页器对应显示样式
    function play (idx) {
        // 先判断动作锁是否开启,如果已开启表示轮播动作正在执行,则不重复执行
        if(isFade) return;   
        // 如果轮播动作未执行,则修改动作锁表示开始执行       
        isFade = true;
        $items.eq(curIdx).fadeOut(500);
        $items.eq(idx).fadeIn(500,function(){
            // 轮播动作执行结束后继续加上动作锁
            isFade = false;
        })
        curIdx = idx;
        setBullet();
    }
    function playNext (){
        // 显示下一张其实就是 play(idx+1),但要将idx+1的值控制在图片数量范围内
        play( (curIdx + 1) % imgCount );
    }
    function playPre (){
        // 显示上一张,play(idx-1),计算方式同上
        play( (imgCount + curIdx - 1) % imgCount );
    }
    function setBullet (){
        $bullet.find('li')
                   .removeClass('active')
                   .eq(curIdx).addClass('active');
    }
    function autoPlay (){
        setInterval(function(){
            playNext();
        },2000)
    }
</script>

相关文章

  • 淡入淡出轮播插件(Js)

    该插件由轮播图片、向前向后按钮及底部分页器3部分组成 首先,搭建页面dom结构,href="javascript:...

  • 轮播图(2)——基于JQ的左右滑动轮播

    上回书我们说到原生js淡入淡出效果的轮播图,这回我们说说左右滑动轮播图,由于需要缓动动画效果,原生js需要封装缓动...

  • js+css插件库

    1、swiper.js 轮播插件2、layer.js 弹出框插件3、an...

  • jQuery相关插件

    jQuery全屏滚动插件fullPage.js jquery轮播图插件unslider

  • 手把手教你封装JavaScript插件

    我们可能已经用过很多JS插件,比如著名的轮播图插件Swiper.js,滚动条插件iScroll.js等等,用起来非...

  • 使用vue-awesome-swiper方法

    在main.js中引入轮播图插件 在基础组件中建立轮播图组件:

  • 常用插件

    js 插件 1,myFocus 焦点图插件===专注焦点图的js 库(轮播图)轻量级 http://demo.jb...

  • web常用库

    js retina.js 实现retina屏幕图片自动替换 slick.js jQuery插件,实现各种轮播图 w...

  • JS 淡入淡出轮播图

    HTML+CSS部分 My First Website ...

  • 个人博客—轮播器

    个人博客—轮播器 轮播器自动轮播,每张图片淡入淡出 控制按钮和图片描述跟随图片轮播 鼠标悬停图片上方则停止轮播,滑...

网友评论

      本文标题:淡入淡出轮播插件(Js)

      本文链接:https://www.haomeiwen.com/subject/frcxoftx.html