当前位置: 首页 > 图文教程 > 网络编程 > Javascript > jQuery教程:超酷的文字变色效果

Javascript
JS暴虐查找法简洁版
JavaScript数组问题解决的多种方法
比较炫的图片播放器 js 焦点效果代码
js iframe网站后台左右收缩型页面脚本
javascript完美随机广告代码
北京奥运会倒计时代码
javascript 数据结构的题
js停止输出代码
兼容多浏览器的字幕特效Marquee的通用js类
IE8 引入跨站数据获取功能说明
javascript 支持ie和firefox杰奇翻页函数
js添加删除行和双击变文本框的脚本
JavaScript 版本自动生成文章摘要
用js遍历 table的脚本
用JavaScript实现UrlEncode和UrlDecode的脚本代码
css把超出的部分显示为省略号的方法兼容火狐
javascript IE中的DOM ready应用技巧
js退弹 IE关闭时弹出广告代码,可以防止屏蔽
js类中的公有变量和私有变量
兼容firefox的给每一个onClick再附加一个事件

Javascript 中的 jQuery教程:超酷的文字变色效果


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 374 ::
收藏到网摘: n/a

原作者是大名鼎鼎的Mootools和jQuery高手David Walsh,那个链接变色比较优雅一些。今天我要给大家带来一款更酷的文字变色效果。

看一下demo先.

正如你看到的那样,当你将鼠标放到文字上去的时候,文字就会变成五颜六色的。

其实这种效果来自于知名开源微博chyrp,它实现起来也并不难。基本原理是使用charAt()函数将文字打散并逐个设置字体颜色,当然,也要用到jquery的选择器和相关函数。

定义色彩数组先,这里定义了7个,当然可以定义更多。

var colors = ["#ff2e99", "#ff8a2d", "#ffe12a", "#caff2a", "#1fb5ff", "#5931ff", "#b848ff"]

核心函数:

1
2
3
4
5
6
7
8
9
10
11
12
function colorize(text) { var colorized = "" var bracket_color = "" for (i = 0; i < text.length; i++) { var index = Math.floor(Math.random()*7) if (text[i] == "(") bracket_color = colors[index] color = (bracket_color.length && (text[i] == "(" || text[i] == ")")) ? bracket_color : colors[index]//取色	colorized = colorized + '<span style="color: '+color+' !important">' + text.charAt(i) + '</span>' //重构	} return colorized
}

最后,使用jquery选择器将colorize()函数应用到相关对象上:

1
2
3
4
5
6
 $(".colorize").bind("mouseenter", function(){ $(this).data("text", $(this).text());	$(this).html(colorize($(this).text()));	}).bind("mouseleave", function(){	$(this).html($(this).data("text"));	});

这里使用了jquery的bind()函数绑定了两个事件:mouseenter和mouseleave,其实这样稍有些麻烦,我们可以简化一些,换做hover():

1
2
3
4
5
6
7
8
$(".colorize2").hover(	function(){	$(this).data("text", $(this).text());	$(this).html(colorize($(this).text()));	},	function(){	$(this).html($(this).data("text"));
});

当然,这个效果,并不是只能用于链接,只要是内容为文字的元素,都可以使用这个效果。想必这个对一般的高手,都不难吧,大家有没有更好的方法或者在其他框架上实现?请通过评论与我们分享吧!