整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

教你用十行代码实现网页标题滚动效果

教你用十行代码实现网页标题滚动效果

天进步一点点,首先点开下面的gif图,看一看效果

怎么样才能实现网页标题滚动效果呢?时间就是金钱,废话不多说,直接上代码:

var keyWords="我想变成一棵树,开心时在秋天开花,伤心时在春天落叶!";
function titleChange() {
	var keyList=keyWords.split("");
	var firstChar=keyList.shift();
	keyList.push(firstChar);
	keyWords=keyList.join("");
	document.title=keyWords;
}
setInterval(titleChange, 500);

数一数确实不到十行哈哈哈哈,给自己点赞。

点了一个蚊香赞

然后解释一下每一行的意思吧:

首先创建了一个变量 keyWords,用来存放网页标题滚动的文字(字符串)

接着创建一个命名函数 titleChange 执行以下操作;

1. 用split() 方法(不改变原始字符串)将滚动的文字拆分为单个字符的数组keyList;

打印 keyList 结果


2. 用shift()方法移出位于数组 keyList 头部的元素,并用变量 firstChar 存储;

3. 用push()方法将步骤2中移除的字符,重新放到数组 keyList 的尾部;

4. 用join() 方法将数组重新拼接为字符串,替换原本 keyWords 中存储的文本(字符串);

5. 用 document.title 将步骤4中重新拼接的字符串,重新赋值到网页标题中;

这样就将 keyWords 中原本的第一个字符移动至最后一位

网页标题中原本位于第一个字符之后的文本会批量前移

实现文本向前滚动的效果,但是由于函数每次调用只会执行一次

所以最后我们还需要创建一个计时器,每隔500毫秒重新调用一次 titleChange 函数

最终实现网页标题循环滚动的效果了

我们还可以看一看控制台打印的 keyWords

啊呀!我感觉做了一个洗剪吹门口的霓虹灯呀 。。。

接上代码(很简单):

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>公告滚动</title>

<script src="js/jquery-1.11.0.js"></script>

<style>

*{

margin: 0;

padding: 0;

}

li{

list-style: none;

}

a {

text-decoration: none;

}

li a {

color: red;

}

#demo{

overflow: hidden;

height: 22px;

line-height: 22px;

}

</style>

</head>

<body>

<div>

<div style="float:left"><strong>公告:</strong></div>

<div id="demo">

<ul >

<li><a href="#" target="_blank">这是第一条公告</a></li>

<li><a href="#" target="_blank">这是第二条公告</a></li>

<li><a href="#" target="_blank">这是第三条公告</a></li>

<li><a href="#" target="_blank">这是第四条公告</a></li>

<li><a href="#" target="_blank">这是第五条公告</a></li>

</ul>

</div>

</div>

</body>

<script>

function topScroll(obj) {

$(obj).find("ul:first").animate({

marginTop: "-22px"

},

500,

function() {

$(this).css({

marginTop: "0px"

}).find("li:first").appendTo(this);

});

}

$(document).ready(function() {

setInterval('topScroll("#demo")', 1000)

});

</script>

</html>

效果如:

过js中的定时器实现标题走马灯的效果;通过向左向右按钮控制标题滚动方向

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>★滚动标题,实现走马灯效果☆</title>
    <script type="text/javascript">
        //页面加载完毕后执行
        window.onload=function () {
            //设置一个变量控制标题滚动方向
            var dir='left';//默认向左滚动
            window.setInterval(function () {
                //设置向左滚动
                if (dir=='left') {
                    //截取标题的第一个字符
                    var firstChar=document.title.charAt(0);
                    //截取剩余字符
                    var othersChar=document.title.substr(1);
                    //重新拼接组合标题字符 再赋值给title标签
                    document.title=othersChar + firstChar;
                    // 设置向右滚动
                } else if (dir=='right') {
                    //截取标题最后的第一个字符
                    var lastChar=document.title.charAt(document.title.length - 1);
                    //截取剩余字符
                    var othersChar=document.title.substring(0, document.title.length - 1);
                    //重新赋值给title标签
                    document.title=lastChar + othersChar;
                }
            }, 500);
            //=========================================    //为两个按钮注册单击事件
            document.getElementById('btnLeft').onclick=function () {
                //修改方向变量  设置标题字符向左滚动
                dir='left';
            }
            document.getElementById('btnRight').onclick=function () {
                //修改方向变量  设置标题字符向右滚动
                dir='right';
            }
        }
    </script>
</head>
<body>
    <input type="button" id="btnLeft" value="向左滚动" />
    <input type="button" id="btnRight" value="向右滚动" />
</body>
</html>

注意:截取字符串方法 subStr()与subString()的区别,之前说过不再赘述