`
z2009zxiaolong
  • 浏览: 77177 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

JS特效-浏览器标题栏闪烁

阅读更多

使用JavaScript制作浏览器标题栏闪烁效果,以面向对象的方式方式封装了JS。当你遭遇了Backbone,就会习惯JS也面向对象,也会习惯JS也MVC分离。就像这种JS风格,我喜欢。扯远了,呵呵。

不废话了,直接贴代码。

 

<html>

<head>
	<title>JS效果-浏览器标题栏闪烁</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

	<script type="text/javascript"> 

	// 使用message对象封装消息
	var message={ 
		time: 0, 
		title: document.title, 
		timer: null, 

		// 显示新消息提示 
		show:function(){ 
			var title = message.title.replace("【   】", "").replace("【新消息】", "");
			// 定时器,设置消息切换频率闪烁效果就此产生 
			message.timer = setTimeout(
				function() { 
					message.time++;
					message.show(); 

					if (message.time % 2 == 0) { 
						document.title = "【新消息】" + title 
					}
					else{ 
						document.title = "【   】" + title 
					}; 
				}, 
				600 // 闪烁时间差
			); 
			return [message.timer, message.title]; 
		}, 

		// 取消新消息提示 
		clear: function(){ 
			clearTimeout(message.timer); 
			document.title = message.title; 
		} 
	}; 

	message.show(); 

	// 页面加载时绑定点击事件,单击取消闪烁提示
	function bind() {
		document.onclick = function(){
			message.clear(); 
		}; 
	} 

	</script>

</head>

	<body onload="bind();">
		点击页面取消消息闪烁提示
	</body>

</html>

 

 

2
2
分享到:
评论
11 楼 fffddd 2012-09-07  
z2009zxiaolong 写道
bolo 写道
我想问下,你这个setTimeout为什么可以不停的执行呢?这个函数不是在某个时间点后执行一次的吗?return [message.timer, message.title];返回这个是干什么的?

确实不好理解,第一个问题请看7楼吧,因为是递归调用,返回值是给对象自身的属性,message.timer返回给message的timer属性,message.title是同样的,然后又在19行开始调用message.timer。


z2009zxiaolong 写道
mfkvfn 写道
要用setInterval吧。你确信setTimeout可以?

当然可以,发布代码之前肯定要经过测试。你看第22行“message.show();”,递归调用了自身,所以setTimeout的效果跟setInterval是一样的。


setTimeout和setInterval当然不一样。虽然在这里你说的“效果”一样了。你没有想过既然setTimeout就可以了,哪怎么会有setInterval函数呢?

你看看资源就知道了。你每调用setTimeout一次就新生成了一个message.timer,这是对浏览器资源的一种浪费,希望不要误导新人。
10 楼 z2009zxiaolong 2012-09-05  
bolo 写道
我想问下,你这个setTimeout为什么可以不停的执行呢?这个函数不是在某个时间点后执行一次的吗?return [message.timer, message.title];返回这个是干什么的?

确实不好理解,第一个问题请看7楼吧,因为是递归调用,返回值是给对象自身的属性,message.timer返回给message的timer属性,message.title是同样的,然后又在19行开始调用message.timer。
9 楼 z2009zxiaolong 2012-09-05  
fffddd 写道
<span style="font-size: medium;"><html>

<head>
	<title>JS效果-浏览器标题栏闪烁</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

	<script type="text/javascript"> 

	// 使用message对象封装消息
	var message = {
		time : 1,
		defaultTitle : document.title,
		timer : null,

		// 显示新消息提示
		show : function() {
			message.time++;
			document.title=message.time%2==0?"【新消息】":"【   】";
			document.title+=message.defaultTitle;
			if (!message.timer) {
				message.timer = setInterval("message.show()", 600);
			}
		},

		// 取消新消息提示
		clear : function() {
			clearInterval(message.timer);
			document.title = message.defaultTitle;
		}
	};

	message.show(); 

	// 页面加载时绑定点击事件,单击取消闪烁提示
	function bind() {
		document.onclick = function(){
			message.clear(); 
		}; 
	} 

	</script>

</head>

	<body onload="bind();">
		点击页面取消消息闪烁提示
	</body>

</html></span>


我帮你修改了一下。

感谢你的帮忙,这个容易理解多了,比之前的递归调用自身setTimeout,还有“return [message.timer, message.title];”容易看懂。
8 楼 z2009zxiaolong 2012-09-05  
sky_lichao 写道
这个不错,但我想知道怎么人为控制它的开始呢

一种比较简单的实现方式是,给message再定义一个属性,比如布尔型的flag。在show方法里的第24行if语句之前判断flag == true?,然后再写一个方法,需要开始时调用这个方法,将flag设置为true即可。
7 楼 z2009zxiaolong 2012-09-05  
mfkvfn 写道
要用setInterval吧。你确信setTimeout可以?

当然可以,发布代码之前肯定要经过测试。你看第22行“message.show();”,递归调用了自身,所以setTimeout的效果跟setInterval是一样的。
6 楼 mfkvfn 2012-09-05  
要用setInterval吧。你确信setTimeout可以?
5 楼 sky_lichao 2012-09-05  
这个不错,但我想知道怎么人为控制它的开始呢
4 楼 bolo 2012-09-05  
我想问下,你这个setTimeout为什么可以不停的执行呢?这个函数不是在某个时间点后执行一次的吗?return [message.timer, message.title];返回这个是干什么的?
3 楼 fffddd 2012-09-05  
<span style="font-size: medium;"><html>

<head>
	<title>JS效果-浏览器标题栏闪烁</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

	<script type="text/javascript"> 

	// 使用message对象封装消息
	var message = {
		time : 1,
		defaultTitle : document.title,
		timer : null,

		// 显示新消息提示
		show : function() {
			message.time++;
			document.title=message.time%2==0?"【新消息】":"【   】";
			document.title+=message.defaultTitle;
			if (!message.timer) {
				message.timer = setInterval("message.show()", 600);
			}
		},

		// 取消新消息提示
		clear : function() {
			clearInterval(message.timer);
			document.title = message.defaultTitle;
		}
	};

	message.show(); 

	// 页面加载时绑定点击事件,单击取消闪烁提示
	function bind() {
		document.onclick = function(){
			message.clear(); 
		}; 
	} 

	</script>

</head>

	<body onload="bind();">
		点击页面取消消息闪烁提示
	</body>

</html></span>


我帮你修改了一下。
2 楼 z2009zxiaolong 2012-09-04  
zjhlht 写道
更喜欢你扯远了的那些话!支持一下

不过像我这种码农,不喜欢废话,就直接帖代码了。
1 楼 zjhlht 2012-09-04  
更喜欢你扯远了的那些话!支持一下

相关推荐

    javascript经典特效---Title栏闪烁.rar

    在本案例"javascript经典特效---Title栏闪烁.rar"中,我们聚焦的是如何使用JavaScript实现浏览器标题栏(Title栏)的闪烁效果。这个效果通常用于吸引用户注意力,提示有新的信息或者更新。 首先,我们需要理解HTML...

    javascript经典特效---状态栏打字机.rar

    JavaScript经典特效——状态栏打字机效果是一种常见的前端交互设计,它模拟了老式打字机在显示屏上逐字输入文字的过程,给用户带来一种独特的视觉体验。这种效果常用于网页加载提示、消息展示或者创建引人注目的动态...

    网页标题闪动JS网页特效

    1. HTML标题标签:HTML中的`&lt;title&gt;`标签用于定义网页的标题,显示在浏览器的标题栏和书签中。 2. CSS样式:CSS(Cascading Style Sheets)可以用来设置网页标题的样式,包括字体、颜色、大小等。 三、JS实现标题...

    JS实现title标题闪烁提示信息特效代码

    在JavaScript(JS)中,实现标题闪烁提示信息特效是一种常见的网页动态效果,它可以吸引用户的注意力,通常用于显示重要通知或消息。以下是如何使用JS来创建这种闪烁标题特效的详细步骤和相关知识点: 首先,理解...

    像QQ一样闪动的最新消息提示.rar

    标题中的“像QQ一样闪动的最新消息提示”是指一种常见的网页交互效果,它模仿了腾讯QQ这款即时通讯软件在接收到新消息时任务栏图标闪烁的提示方式。这种效果通常用于吸引用户注意力,告知他们有未读消息或更新内容。...

    javascript网页特效实例大全

    4.4 标题栏显示日期 68 4.5 标题栏显示时间 69 4.6 不同时间的不同问候 69 4.7 记录进入网站的时间 70 4.8 页面的最后更新日期 71 4.9 节日倒计时 72 4.10 定时打开指定页面 72 4.11 显示在背景上的时钟 73 ...

    JavaScript网页特效范例宝典源码

    实例035 动态标题栏 53 实例036 固定大小的窗口 54 1.6 框架的应用 55 实例037 框架集的嵌套 56 实例038 在网页中应用浮动框架 58 实例039 创建空白框架 60 实例040 居中显示框架页 62 1.7 无边框窗口 63 实例041 ...

    frontpage网页特效

    2. **滚动文本**:可以通过设置JavaScript或VBScript脚本来实现文本的自动滚动,如新闻标题的滚动显示,增加信息展示的效率。 3. **下拉菜单**:下拉菜单可以让导航栏更简洁,用户只需点击主菜单项,即可看到子菜单...

    网页设计练习

    标题栏特效的目的是使得最小化后的浏览器窗口在任务栏上产生动态效果,如闪烁的星星,以吸引用户的注意力。这种效果在用户同时打开多个浏览器窗口时尤其显著,因为它使得特定的窗口更显突出。 在描述的案例中,闪烁...

    程序天下:JavaScript实例自学手册

    13.9 标题栏显示时间 13.10 超过时间页面自动跳转 13.11 分时段问候用户 13.12 获取服务器时间 13.13 倒计时显示 13.14 背景时钟 13.15 计算某天星期几 13.16 计算时间差 13.17 计算网页停留时间 13.18 记录页面的...

    《程序天下:JavaScript实例自学手册》光盘源码

    13.9 标题栏显示时间 13.10 超过时间页面自动跳转 13.11 分时段问候用户 13.12 获取服务器时间 13.13 倒计时显示 13.14 背景时钟 13.15 计算某天星期几 13.16 计算时间差 13.17 计算网页停留时间 13.18 记录页面的...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon="Close",现在需要这样定义Icon="SystemClose"。 -Window...

    《JavaScript实例精通》[源代码]

    5_6.htm 标题栏显示时间。 5_7.htm 不同时间的不同问候。 第6章(\6) 示例描述:JavaScript页面处理技巧。 6_1.htm 用JavaScript实现一个页面两份样式表。 6_2.htm 用JavaScript动态更换图像元素中的图像...

    JavaScript实例精通

    JavaScript实例精通 1.本书1~20章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:、Dreamwave、Notepad、UltraEdit,或者其他文本编辑器 Web服务器:IIS 5.1及...

    ExtAspNet_v2.3.2_dll

    -修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon="Close",现在需要这样定义Icon="SystemClose"。 -Window...

    JavaScript实用范例词典04-14

    5.28 改变在浏览器地址栏中显示的 图标... 131 5.29 弹出一个新窗口... 131 5.30 弹出一个无属性栏的窗口... 132 5.31 弹出广告窗口... 133 5.32 弹出多个窗口... 134 5.33 指定弹出窗口的位置(IE) 135 5.34 ...

    javascript通讯录

    3. **状态栏特效**:状态栏通常指的是浏览器底部的状态显示区域,这部分代码可能会利用JavaScript改变其显示内容或实现动态效果,以增加用户体验。 4. **页面效果类**:这包括各种页面级别的动画和转换效果,如淡入...

    像QQ一样闪动的最新消息提示特效代码

    标题中的“像QQ一样闪动的最新消息提示特效代码”是指在网页或应用程序中实现一种类似于腾讯QQ的消息通知效果,这种效果通常会在有新消息到来时,使窗口标题栏或者特定区域闪烁,以吸引用户的注意力。这个特效在用户...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

Global site tag (gtag.js) - Google Analytics