来源:tutorialzine.com 编译:GBin1.com
在这篇快速的jQuery插件开发教程中,我们将创建一个jQuery插件用来随机排序显示任何一个DOM元素的文字内容 -这将会是一个非常有趣的效果,可以用在标题,logo及其幻灯效果中。
在线演示
在线下载
代码片段
那么第一部呢,我们将开发jQuery插件的基本架构。我们将把代码放入一个自运行的方法中,并且扩展$.fn.
assets/js/jquery.shuffleLetters.js
(function($){
$.fn.shuffleLetters = function(prop){
// Handling default arguments
var options = $.extend({
// Default arguments
},prop)
return this.each(function(){
// The main plugin code goes here
});
};
// A helper function
function randomChar(type){
// Generate and return a random character
}
})(jQuery);
下一步我们将关注与randomChar()方法。它将会接受一个类型参数(Lowerletter, upperletter或者symbol),并且返回一个随机字符。
function randomChar(type){
var pool = "";
if (type == "lowerLetter"){
pool = "abcdefghijklmnopqrstuvwxyz0123456789";
}
else if (type == "upperLetter"){
pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
}
else if (type == "symbol"){
pool = ",.?/\\(^)![]{}*&^%$#'\"";
}
var arr = pool.split('');
return arr[Math.floor(Math.random()*arr.length)];
}
我们本应该使用一个简单的字符池来保存所有的字符,但是这样会有更好效果。
现在我们来书写插件的body部分:
$.fn.shuffleLetters = function(prop){
var options = $.extend({
"step" : 8, // How many times should the letters be changed
"fps" : 25, // Frames Per Second
"text" : "" // Use this text instead of the contents
},prop)
return this.each(function(){
var el = $(this),
str = "";
if(options.text) {
str = options.text.split('');
}
else {
str = el.text().split('');
}
// The types array holds the type for each character;
// Letters holds the positions of non-space characters;
var types = [],
letters = [];
// Looping through all the chars of the string
for(var i=0;i<str.length;i++){
var ch = str[i];
if(ch == " "){
types[i] = "space";
continue;
}
else if(/[a-z]/.test(ch)){
types[i] = "lowerLetter";
}
else if(/[A-Z]/.test(ch)){
types[i] = "upperLetter";
}
else {
types[i] = "symbol";
}
letters.push(i);
}
el.html("");
// Self executing named function expression:
(function shuffle(start){
// This code is run options.fps times per second
// and updates the contents of the page element
var i,
len = letters.length,
strCopy = str.slice(0); // Fresh copy of the string
if(start>len){
return;
}
// All the work gets done here
for(i=Math.max(start,0); i < len; i++){
// The start argument and options.step limit
// the characters we will be working on at once
if( i < start+options.step){
// Generate a random character at this position
strCopy[letters[i]] = randomChar(types[letters[i]]);
}
else {
strCopy[letters[i]] = "";
}
}
el.text(strCopy.join(""));
setTimeout(function(){
shuffle(start+1);
},1000/options.fps);
})(-options.step);
});
};
这个插件将可以接受被调用的DOM元素的内容,或者当作一个参数传入的对象的text属性。然后它分割字符串到字符,并且决定使用的类型。这个shuffle功能使用setTimeout()来调用自己并且随机生成字符串,更新DOM元素。如果你不清楚setTimeout()的使用,可以参考这篇文章:http://www.gbin1.com/technology/jqueryhowto/fadeoutonebyone/
,调用seTimeout方法可以帮助你按特定时间间隔执行某些操作。
原文来自:随机字符变换效果的jQuery插件开发教程
分享到:
相关推荐
Chaffle是一个jquery插件,允许你洗牌随机字符。演示地址:http://www.jq22.com/jquery-info549
Jquery中用于省略字符过长的插件。在网页中经常会遇到字符溢出,然后使用省略“...”字符来代替溢出的文本。
jQuery网页刷新随机显示一组字符串打字显示/渐渐消失效果,字符串数组随机定义,无数量限制,jQuery技术,赋值给指定的DIV层
一个jQuery辅助的字符类型输入限制插件,这个插件是先限制再输入,也就是当用户输入的时候,输入了不允许的字符,则不自动过滤掉该字符,不会显示在文本框中。这款插件的名字叫做jQuery AlphaNumeric,by Paulo P. ...
文章随机字符串防采集插件for PHP168 具体修改说明见附件
jquery鼠标悬停随机显示字符特效是一款jquery随机字符插件Chaffle。
易语言快速取随机字符源码,快速取随机字符,取十万个,取随机字符,添加_英文大写,添加_英文小写,添加_数字,清空
Java获取随机字符串Java获取随机字符串Java获取随机字符串
jQuery字符插件之适合留言板的jquery文本框输入字符限制插件下载
Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...
excel生成20位随机字符串,按F9更新,可以做为随机密码使用。
jquery 插件之 floattextbox 修改版,增加字符输入提示。 输入框插件:实现点击textarea输入框弹出大的输入框
易语言快速取随机字符源码。@易语言资源论坛。
易语言源码易语言快速取随机字符源码.rar
words: { //字符串设置 len: 10, //限制长度 gbk: true //中文字符是否占用2长度 }, numeric: { //数字/小数设置 allowdec: 0, //小数位,-1:无小数,0:不限制小数位,>0:具体位数 negative: 0 //允许负数 1:...
jquery.emojiRatings.js是一款基于unicode表情字符的jQuery星级评分插件。Emoji星级评分插件是轻量级的jQuery插件,它使用简单,可以使用任何unicode字符作为星级评分的符号。
Vs2005 WinForm开发产生随机字符、字符串、随机数
jquery.emojiRatings.js是一款基于unicode表情字符的jQuery星级评分插件。Emoji星级评分插件是轻量级的jQuery插件,它使用简单,可以使用任何unicode字符作为星级评分的符号。
最近做个功能,需要用到随机字符串,在网上整理了一些代码,生成随机字符串 可以设置生成的随机字符的取间..