(转):biuuu,来源:http://www.biuuu.com/?p=559
如果使用javascript实现定时可控制效果,一般来说会比较麻烦,效果也很差,这里介绍一个jQuery插件timers定时器,能实现控制播放,无限制定时播放,按时播放等功能,非常实用,对于制作交互性网页,加强用户页面体验,非常实用,jQuery插件timers定时器几种效果如下图:
使用说明
需要使用jQuery库文件(目前版本1.3)和jQuery Timers库文件(目前版本1.1.2)
素材准备
timers定时器控制的效果样式,如打印文字显示效果等
实例代码
一,包含文件部分
- <script text="text/javascript" src="jquery-1.3.1.min.js"></script>
- <script text="text/javascript" src="jquery.timers-1.1.2.js"></script>
二,HTML部分
- <div class="wrapper">
- <div class="demos">
- <h3>jQuery插件timers定时器</h3>
- <h3>可控的定时器</h3>
- <div class="controlled-interval">
- <ul></ul>
- <p><span class="start">开始</span> | <span class="stop">停止</span></p>
- </div>
- <h3>无限的定时器</h3>
- <div class="uncontrolled-interval">
- <p>临时符号</p>
- </div>
- <h3>控制一次</h3>
- <div class="controlled-timeout">
- <p>点击停止执行</p>
- </div>
- <h3>无限一次</h3>
- <div class="uncontrolled-timeout">
- <p>改变</p>
- </div>
- </div>
- </div>
三,Javascript部分(jQuery插件timers定时器调用)
- <script text="text/javascript">
- $(document).ready(function(){
- var demos = $("div.wrapper div.demos");
- var active = false;
- $('.controlled-interval', demos).find('.start').css("cursor", "pointer").click(function() {
- if (!active) {
- active = !active;
- $(this).parents("div").find('ul').everyTime(1000, 'controlled', function() {
- $(this).append("<li>必优博客www.biuuu.com</li>");
- });
- }
- }).end().find('.stop').css("cursor", "pointer").click(function() {
- if (active) {
- active = !active;
- $(this).parents("div").find('ul').stopTime('controlled');
- }
- });
- });
- </script>
上面实现一个可控制播放效果,当点击开始后,页面打印"必优博客www.biuuu.com",点击停止后将停止打印,再点击开始又在原有打印基础上继续打印文字,实现javascrip按钮控制播放功能。
定义一个可控制的对象,如demos
定义一个常量active表示是否自动播放
1,开始,在播放对象中查找class类为start,并定义鼠标指针的CSS样式,当点击时触发定时打印,调用timers定时器方法everyTime,原型如下:
everyTime(interval, label, fn, times, belay)具体可查看timers定时器JS库文件
2,停止,原理同上,调用timers定时器方法stopTime,原型如下:
stopTime(label, fn)具体可查看timers定时器JS库文件
timers定时器有三个内置方法,分别如下:
everyTime(interval, label, fn, times, belay)
oneTime(interval, label, fn)
stopTime(label, fn)
分别表示无限,一次和停止时间,其中interval表示毫秒数,label表示标签,fn表示实现的方法,如打印文字等,
其它效果
一,实现每秒打印效果(everyTime()代码同上),javascrip按钮时间控制功能
- $(".uncontrolled-interval p", demos).everyTime(1000,function(i) {
- $(this).html(i);
- });
二,实现定时效果( oneTime() ),javascrip定时功能
- var event = function() {
- $(this).text("请点击!");
- $(this).stopTime();
- };
- $("div.controlled-timeout p", demos).click(event).oneTime("5s", function() {
- $(this).text("太迟了,时间过了!");
- $(this).unbind('click', event);
- });
三,实现一次效果(oneTime())
- $("div.uncontrolled-timeout p", demos).oneTime(2000, function() {
- $(this).html("看?");
- }).oneTime(5000, "soon", function() {
- $(this).html("不能停止");
- });
jQuery插件timers定时器可实现多种效果,可定时,可控制定时等,实现javascrip定时或按钮控制功能,对于制作交互网页来说,非常值得推荐。
点我下载 jQuery插件timers定时器实现javascrip定时或按钮控制功能 DEMO