博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最新新闻、最新文章,JavaScript实现无缝循环滚动
阅读量:6827 次
发布时间:2019-06-26

本文共 1860 字,大约阅读时间需要 6 分钟。

最新新闻、最新文章,JavaScript实现无缝循环滚动(基于jQuery)。

 

JS代码如下:

<script type="text/javascript">

        $(function () {
            if ($("#ulDynamic").height() > 200) {
                $("#ulDynamic").height(200);
                $("#ulDynamic").css("overflow", "hidden");
                var scroll = new s("#ulDynamic", "#ulDynamic li", 30); //参数为滚动速度,单位毫秒
                scroll.bind();
                scroll.start();
            }
        });
        function s(containerSelector, childSelector, speed) {
            this.containerSelector = containerSelector;
            this.childSelector = childSelector;
            this.rotator = $(this.containerSelector);
            this.speed = speed || 30;
            this.tid = this.tid2 = this.firstLi = null;
            this.num = 0;
            this.liCount = $(this.childSelector).length;
        }
        s.prototype = {
            bind: function () {
                var o = this;
                this.rotator.hover(function () { o.end(); }, function () { o.start(); });
            },
            start: function () {
                if ($(this.childSelector).length == this.liCount) {
                    this.firstLi = $(this.childSelector + ":first-child");
                    this.rotator.append(this.firstLi.clone());
                }
                var o = this;
                this.tid = setInterval(function () { o.rotation(); }, this.speed);
            },
            end: function () {
                clearInterval(this.tid);
                clearTimeout(this.tid2);
            },
            rotation: function () {
                var o = this;
                var firstLi = $(this.childSelector + ":first-child");
                this.num++;
                this.rotator[0].scrollTop = this.num;
                if (this.num == this.firstLi[0].scrollHeight + 0) {
                    clearInterval(this.tid);
                    this.firstLi.remove();
                    this.num = 0;
                    this.rotator[0].scrollTop = 0;
                    this.tid2 = setTimeout(function () { o.start(); }, 0);
                }
            }
        }
    </script>

 

页面代码如下:

<div>

        <ul id="ulDynamic" style="margin:0px; padding:0px;">
            <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>
            <li>看这个向动的代码10</li>
            <li>看这个向上的代码11</li>
            <li>看滚动的代码12</li>
            <li>看这个向上滚动的代码13</li>
            <li>看这个向上滚动的代码14</li>
            <li>看这个向上滚动的代码15</li>
        </ul>
    </div>

 

(水平有限,仅供参考。)

转载于:https://www.cnblogs.com/liuwentian/archive/2013/03/21/2973739.html

你可能感兴趣的文章
html标签页图标
查看>>
C# list 新用法
查看>>
Android 获取控件相对于屏幕位置
查看>>
DNGuard Enterprise v2.80 released
查看>>
WPP
查看>>
C# GetSchema Get List of Table 获取数据库中所有的表名以及表中的纪录条数的方法
查看>>
PySide教程:“.NET研究”第一个PySide应用
查看>>
winrar自解压释放路径详解
查看>>
图像开运算+闭运算+腐蚀+膨胀
查看>>
poj-1324 Holedox Moving **** [转]
查看>>
深入foreach工作方式
查看>>
UIView 进行各种动画展示及其用法解释
查看>>
公布2012年5月赛CSDN算法达人赛试题及参考答案
查看>>
Mysql ON子句和USING子句
查看>>
linux杂谈
查看>>
类型、值和变量
查看>>
UIImage+Scale
查看>>
Linux sed 替换第一次出现的字符串
查看>>
windows 下VLC播放器应用之二------LIBVLC API解析
查看>>
web页面常用功能js实现
查看>>