原生JS实现目录滚动特效

2020-11-26 15:44:08 浏览数 (1)

分享一个用原生JS实现的文字滚动效果,这种效果通常用在网页中一些局部展示信息,如新闻、动态、充值记录等,效果如下:

实现代码如下:

代码语言:javascript复制
<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>原生JS实现目录滚动特效</title>
    <style>
        body {
            font-size: 12px;
            line-height: 24px;
            text-align: center;
        }

        * {
            margin: 0px;
            padding: 0px;
        }

        ul {
            list-style: none;
        }

        a img {
            border: none;
        }

        a {
            color: #333;
            text-decoration: none;
        }

        a:hover {
            color: #ff0000;
        }

        #mooc {
            width: 399px;
            border: 5px solid #ababab;
            -moz-border-radius: 15px;
            -webkit-border-radius: 15px;
            border-radius: 15px;
            box-shadow: 2px 2px 10px #ababab;
            margin: 50px auto 0;
            text-align: left;
        }

        #moocTitle {
            height: 62px;
            overflow: hidden;
            font-size: 26px;
            line-height: 62px;
            padding-left: 30px;
            /* Firefox */
            background-image: -moz-linear-gradient(top, #f05e6f, #c9394a);
            /* Saf4 , Chrome */
            background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #f05e6f), color-stop(1, #c9394a));
            /* IE*/
            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8fa1ff', endColorstr='#f05e6f', GradientType='0');
            border: 1px solid ##f05e6f;
            /* Gecko browsers */
            -moz-border-radius: 8px 8px 0 0;
            /* Webkit browsers */
            -webkit-border-radius: 8px 8px 0 0;
            border-radius: 8px 8px 0 0;
            color: #fff;
            position: relative;
        }

        #moocTitle a {
            position: absolute;
            right: 10px;
            bottom: 10px;
            display: inline;
            color: #fff;
            font-size: 12px;
            line-height: 24px;
        }

        #moocBot {
            width: 399px;
            height: 10px;
            overflow: hidden;
        }

        #moocBox {
            height: 144px;
            width: 335px;
            margin-left: 25px;
            margin-top: 10px;
            overflow: hidden;
        }

        #mooc ul li {
            height: 24px;
        }

        #mooc ul li a {
            width: 180px;
            float: left;
            display: block;
            overflow: hidden;
            text-indent: 15px;
            height: 24px;
        }

        #mooc ul li span {
            float: right;
            color: #999;
        }
    </style>
</head>

<body>
    <div id="mooc">
        <h3 id="moocTitle">
            最新课程<a href="#" target="_self">更多>></a>
        </h3>

        <div id="moocBox">
            <ul id="con1">
                <li>
                    <a href="#">1.绝对的屌丝逆袭</a>
                    <span>2013-09-18</span>
                </li>
                <li>
                    <a href="#">2.tab页面切换效果</a>
                    <span>2013-10-09</span>
                </li>
                <li>
                    <a href="#">3.圆角水晶按钮制作</a>
                    <span>2013-10-21</span>
                </li>
                <li>
                    <a href="#">4.HTML CSS基础课程</a>
                    <span>2013-11-01</span>
                </li>
                <li>
                    <a href="#">5.分页页码制作</a>
                    <span>2013-11-06</span>
                </li>
                <li>
                    <a href="#">6.导航条菜单的制作</a>
                    <span>2013-11-08</span>
                </li>
                <li>
                    <a href="#">7.信息列表制作</a>
                    <span>2013-11-15</span>
                </li>
                <li>
                    <a href="#">8.下拉菜单制作</a>
                    <span>2013-11-22</span>
                </li>
                <li>
                    <a href="#">9.如何实现“新手引导”效果</a>
                    <span>2013-12-06</span>
                </li>
            </ul>
            <ul id="con2"></ul>
        </div>
    </div>
    <script type="text/javascript">
        //获取滚动列表容器
        var area = document.getElementById('moocBox');
        //获取列表1
        var con1 = document.getElementById('con1');
        //获取空列表2
        var con2 = document.getElementById('con2');
        //设定定时器执行时间间隔
        var speed = 50;

        //设定向上滚动变量
        area.scrollTop = 0;

        //复制列表1的内容给列表2
        con2.innerHTML = con1.innerHTML;

        //向上滚动函数
        function scrollUp() {
            //当滚动列表向滚动的高度大于等于列表自身的高度时
            if (area.scrollTop >= con1.scrollHeight) {
                //将列表滚动高度归零,重新开始滚
                area.scrollTop = 0;
                //否则
            } else {
                //继续滚
                area.scrollTop  ;
            }
        }

        //存储定时器
        var myScroll = setInterval("scrollUp()", speed);

        //当鼠标移入的时候,清除定时器
        area.onmouseover = function () {
            clearInterval(myScroll);
        }
        //当鼠标移开的时候,启动定时器
        area.onmouseout = function () {
            myScroll = setInterval("scrollUp()", speed);
        }
    </script>
</body>

</html>

0 人点赞