jQuery的图片/文字无缝滚动

1、引入jQuery插件包

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>

无缝滚动,就是无缝的滚动!换句话说,无缝滚动就是,图片或者文字下一张下一张地滚动,当滚动到屁股的时候就看到头了,反过来,当滚动到头的时候又能看到屁股了。还是看 DEMO 吧,或许更好理解一些。如你所见,当作为一排图片展示的时候,无缝滚动可以让人有无尽的感觉,页面一下子就充实了。

    因为我也不是刻意去写这个 jQuery 的无缝滚动,所以 JS 也没封装过,只提供了几个基本的参数作修改,只能仅作参考。


2、HTML代码

<div class="scroll_area">
    <div class="scroll_list">
        <ul class="scroll_ul">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
            <li>8</li>
            <li>9</li>
        </ul>
    </div>
    <a id="prev" class="btn_icon" href="javascript:;">上一个</a>
    <a id="next" class="btn_icon" href="javascript:;">下一个</a>
</div>

3、jQuery代码
$(function() {
    //配置变量
    var config = {
        showNum : 3,    //设置滚动的显示个数
        autoScroll : false,    //是否自动滚动,默认为 false
        autoScrollInterval : 3000    //自动滚动间隔,默认为 3000 毫秒,autoScroll = true 时才有效
    }
    
    var scrollUlWidth = $('.scroll_ul li').outerWidth(true),    //单个 li 的宽度
        scrollUlLeft = 0,    //.scroll_ul 初使化时的 left 值为 0
        prevAllow = true,    //为了防止连续点击上一页按钮
        nextAllow = true;    //为了防止连续点击下一页按钮
        
    //计算父容量限宽
    $('.scroll_list').width(config.showNum * scrollUlWidth);

    //点击上一页
    $('#prev').click(function() {
        if (prevAllow) {
            prevAllow = false;
            scrollUlLeft = scrollUlLeft - scrollUlWidth;
            $('.scroll_ul').css('left', scrollUlLeft);
            //复制最后一个 li 并插入到 ul 的最前面
            $('.scroll_ul li:last').clone().prependTo('.scroll_ul');
            //删除最后一个 li
            $('.scroll_ul li:last').remove();
            $('.scroll_ul').animate({
                left : scrollUlLeft + scrollUlWidth
            }, 300, function() {
                scrollUlLeft = parseInt($('.scroll_ul').css('left'), 10);
                prevAllow = true;
            })
        }
    });
    
    //点击下一页
    $('#next').click(function() {
        if (nextAllow) {
            nextAllow = false;
            $('.scroll_ul').animate({
                left : scrollUlLeft - scrollUlWidth
            }, 300, function() {
                scrollUlLeft = parseInt($('.scroll_ul').css('left'), 10);
                scrollUlLeft = scrollUlLeft + scrollUlWidth;
                $('.scroll_ul').css('left', scrollUlLeft);
                //复制第一个 li 并插入到 ul 的最后面
                $('.scroll_ul li:first').clone().appendTo('.scroll_ul');
                //删除第一个 li
                $('.scroll_ul li:first').remove();
                nextAllow = true;
            })
        }
    });
    
    //自动滚动
    if (config.autoScroll) {
        setInterval(function() {
            $('#next').trigger('click');
        }, config.autoScrollInterval)
    }
})

基本原理和使用方法都写在注释里了,我也就不多作解释了。最后说一句,google、百度上搜一下就知道,已经有大把大把写好的横的竖的无缝的滚动,总有一款适合你,但是我觉得,只有自己亲自写的才最适合自己的需要,所以就有了以上代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值