随机字符变换效果的jQuery插件开发教程
2011-10-22 10:37
459 查看
来源:tutorialzine.com 编译:GBin1.com
在这篇快速的jQuery插件开发教程中,我们将创建一个jQuery插件用来随机排序显示任何一个DOM元素的文字内容 -这将会是一个非常有趣的效果,可以用在标题,logo及其幻灯效果中。
在线演示
在线下载
下一步我们将关注与randomChar()方法。它将会接受一个类型参数(Lowerletter, upperletter或者symbol),并且返回一个随机字符。
我们本应该使用一个简单的字符池来保存所有的字符,但是这样会有更好效果。
现在我们来书写插件的body部分:
这个插件将可以接受被调用的DOM元素的内容,或者当作一个参数传入的对象的text属性。然后它分割字符串到字符,并且决定使用的类型。这个shuffle功能使用setTimeout()来调用自己并且随机生成字符串,更新DOM元素。如果你不清楚setTimeout()的使用,可以参考这篇文章:http://www.gbin1.com/technology/jqueryhowto/fadeoutonebyone/
, 调用seTimeout方法可以帮助你按特定时间间隔执行某些操作。
原文来自:随机字符变换效果的jQuery插件开发教程
在这篇快速的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插件开发教程
相关文章推荐
- 随机字符变换效果的jQuery插件开发教程
- 随机字符变换效果的jQuery插件开发教程
- jQuery插件开发精品教程,让你的jQuery提升一个台阶1
- 30个精美的jQuery幻灯片效果插件和教程
- 对于 Web 开发很有用的 jQuery 效果制作教程
- jQuery插件开发精品教程,让你的jQuery提升一个台阶
- 精心挑选的12款优秀 jQuery 手风琴效果插件和教程
- jQuery插件开发精品教程,让你的jQuery提升一个台阶
- jQuery插件开发精品教程,让你的jQuery提升一个台阶
- jQuery效果之轮换板及jQuery插件开发
- jQuery插件开发详细教程
- jQuery插件开发精品教程-保证你学会
- jQuery插件开发精品教程,让你的jQuery提升一个台阶
- jQuery插件开发精品教程,让你的jQuery提升一个台阶
- jQuery插件开发精品教程,让你的jQuery提升一个台阶
- jQuery插件开发精品教程,让你的jQuery提升一个台阶 (原创地址 http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html)
- jQuery插件开发精品教程(让你的jQuery更上一个台阶)
- JQuery插件开发教程
- jQuery插件开发详细教程