面向对象的JavaScript文字滚动效果

CJ的JavaScript教程到滚动文字效果那节,觉得很受用。大致修改了下放上来和大家分享。类似于门户网站上面的文字滚动效果,如有类同纯属虚构^!^

HTML:

<h1 id="title">This a H1 Title, isn't it?</h1>
<div class="clear"></div>
<input type="button" id="btn-1" value="开始" />
<input type="button" id="btn-2" value="结束" />

木有什么好说的,主要看JS。

JavaScript:

window.onload = function () {
	var getID = function (id) {
			return document.getElementById(id)
		},
		startBtn = getID("btn-1"),
		stopBtn = getID("btn-2"),
		H1 = getID("title");

	function ScrollText(s, ele, t) {
		/**
		 * 创建一个文字滚动对象
		 * s (要滚动的文字)
		 * ele (HTML节点对象)
		 * t (滚动时间隔)
		 */
		this.s = s.split(""); //将传入字符串分割成数组
		this.ele = ele;
		this.t = t || 300; //默认值为300毫秒
	}
	ScrollText.prototype = {
		start: function () { //开始滚动方法
			var s = this.s,
				ele = this.ele;
			//alert(s.shift());
			clearInterval(this.interval);
			this.interval = setInterval(function () {
				s.push(s.shift()); //将字符串数组第一个字符剪切并添加到数组末尾
				//类似挤牙膏^!^
				ele.innerHTML = s.join("");
			}, this.t);
		},
		stop: function () { //结束滚动方法
			clearInterval(this.interval);
		}
	}

	var st = new ScrollText("这是可以设置的滚动文字哦!", H1, 500);

	//“实例化”对象
	startBtn.onclick = function () {
		st.start();
	};
	stopBtn.onclick = function () {
		st.stop();
	}

}

该说的都在注释里。好吧,不想看代码 看什么?看Demo呀!点击这里查看

面向对象的JavaScript文字滚动效果》上有 34 条评论

  1. 呵呵,JS做的,不错。以前上学的时候也喜欢做滚动效果,那是用的是那个html标签,都记不清是哪个标签了。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。