[前端] 图片滚动效果

没事写了个图片滚动的效果,就是下图:

简单讲下:

插件是基于jQuery写的,主要实现的功能:自动播放、鼠标悬停、左右箭头控制+禁止点击

 

CSS样式([合作伙伴]的宽度是1022px,由于是从页面里copy过来的,所以如果有遇到没有的还请自加):

 

<style>
    .cooperation-box {
        position: relative;
        height: 91px;
        border-bottom: 1px solid #E0DED9;
        overflow: hidden;
    }
    .cooperation {
        position: relative;
        left: 0;
        height: 50px;
        padding: 20px 0;
    }
    .cooperation li {
        float: left;
        width: 205px;
        text-align: center;
    }
    .cooperation li a {
        display: block;
    }
    .cooperation li img {
        height: 100%;
    }
    .cooperation-box>a {
        display: block;
        position: absolute;
        top: 0;
        z-index: 9;
        width: 22px;
        height: 100%;
        background: #f5f5f5;
        font-family: '宋体';
        font-size: 18px;
        color: #aaa;
        font-weight: bold;
        text-align: center;
        line-height: 91px;
    }
    .cooperation-box>a:hover {
        background: #e5e5e5;
    }
    .cooperation-box .prev {
        left: 0;
        border-right: 1px solid #E0DED9;
    }
    .cooperation-box .next {
        right: 0;
        border-left: 1px solid #E0DED9;
    }
    .cooperation-box .prev.disabled,
    .cooperation-box .next.disabled {
        background: #fbfbfb;
        color: #ddd;
    }
    .cooperation-box .prev.disabled:hover,
    .cooperation-box .next.disabled:hover {
        background: #fbfbfb;
    }
</style>

 

 

HTML布局( a标签最好加个title属性 ):

 

<div class="cooperation-box">
    <a class="prev" href="javascript:;"><</a>
    <a class="next" href="javascript:;">></a>
    <ul class="cooperation">
        <li><a href="javascript:;" target="_blank"><img src="images/img-demo3.jpg" alt=""></a></li>
        <li><a href="javascript:;" target="_blank"><img src="images/img-demo3.jpg" alt=""></a></li>
        <li><a href="javascript:;" target="_blank"><img src="images/img-demo3.jpg" alt=""></a></li>
        <li><a href="javascript:;" target="_blank"><img src="images/img-demo3.jpg" alt=""></a></li>
        <li><a href="javascript:;" target="_blank"><img src="images/img-demo3.jpg" alt=""></a></li>
        <li><a href="javascript:;" target="_blank"><img src="images/img-demo3.jpg" alt=""></a></li>
        <li><a href="javascript:;" target="_blank"><img src="images/img-demo3.jpg" alt=""></a></li>
        <li><a href="javascript:;" target="_blank"><img src="images/img-demo3.jpg" alt=""></a></li>
    </ul>
</div>

 

 

 

JS脚本插件:

 

<script>
    $.extend({
        /*
         图片轮播效果
         效果:
         1、自动滚动
         2、鼠标悬停
         3、左右控制+禁止点击
         调用:$.scroll({box: '父容器', scrollbox: 'ul', time: 1500});
         */
        scroll: function(options) {
            // 默认配置
            var defaults = {
                box: '.cooperation-box',  // 父容器
                 scrollbox: '.cooperation', // ul容器
                time: 1500  // 切换时间
            };

            // 扩展配置
            var conf = $.extend({}, defaults, options);

            // 获取li的个数
            var liSize = $(conf.box).find('li').size();

            // 获取li的宽度
            var liWidth = $(conf.box).find('li:first').width();

            // 定义ul的宽度 
            $(conf.scrollbox).width(liWidth*liSize);

            // 右箭头初始化(不可点)
            $(conf.box).find('.next').addClass('disabled');

            // 定义一个全局变量index索引变量
            var index = 0;

            // 切换函数
            function switchFunc() {
                index++;
                if(index > liSize-5) {  // 必须有5个显示在上面
                    index=liSize-5;

                    // 把滚动过的添加到后面,初始left值为0 index值为0
                    var scrolledLi = $(conf.box).find('li:lt('+index+')');
                    $(conf.scrollbox).append(scrolledLi);
                    $(conf.scrollbox).css('left', 0);
                    index = 0;
                }
                $(conf.scrollbox).stop(true, true).animate(
                        {'left': -liWidth*index},
                        500,
                        function() {
                            $(conf.box).find('.next').removeClass('disabled');
                        }
                );
            }

            // 自动播放
            var autoPlay = setInterval(function() {switchFunc();}, conf.time);

            // 鼠标浮上暂停
            $(conf.box).mouseover(function() {
                clearInterval(autoPlay);
            });

            // 鼠标离开继续
            $(conf.box).mouseout(function() {
                autoPlay = setInterval(function() {switchFunc();}, conf.time);
            });

            // 点击左箭头
            $(conf.box).find('.prev').click(function() {
                index++;
                if(index >= liSize-5) {
                    index=liSize-5;
                    $(this).addClass('disabled');
                }
                $(conf.scrollbox).stop(true, true).animate(
                        {'left': -liWidth*index},
                        500,
                        function() {
                            $(conf.box).find('.next').removeClass('disabled');
                        }
                );
            });

            // 点击右箭头
            $(conf.box).find('.next').click(function() {
                index--;
                if(index <= 0) {
                    index = 0;
                    $(this).addClass('disabled');
                }
                $(conf.scrollbox).stop(true, true).animate(
                        {'left': -liWidth*index},
                        500,
                        function() {
                            $(conf.box).find('.prev').removeClass('disabled');
                        }
                );
            });
        }
    });
</script>

 

 

 

页面调用:

 

<script>
    $(function() {
        $.scroll({time: 1500});
    });
</script>

 

欢迎关注技术开发分享录:http://fenxianglu.cn/

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天空还下着雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值