对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!


Posted in Javascript onOctober 29, 2011

在上一篇文章: 觉得猪八戒网左下角的文字滚动,效果不错,自己摸索了一下,以自己的方法实现了!

就有这种效果,不过影响不大。Demo的影响就大了!

网上也有人出现过这样的问题看下面的帖子地址:

firefox 6下 setInterval的一个问题

讨论的人很多,但没给出答案来。

怎么想都想不明白!

今天,突然茅塞顿开,可能是线程的概念,但是具体原因还是不明白,希望有人了解其原应告知,非常感激!

Demo 中黑色的Div是不受浏览器标签切换影响的

而红色的Div会受到影响。
HTML:

<div id="move" style="position: absolute; width: 100px; height: 100px; top: 0pt; left: 0pt; background: none repeat scroll 0% 0% #000000; z-index: 999; color: #ffffff;">我不受浏览器标签切换影响!Hoooo</div> 
<div id="move2" style="position: absolute; width: 100px; height: 100px; top: 0pt; left: 0pt; background: none repeat scroll 0% 0% red; z-index: 999; color: #ffffff;">我受浏览器标签切换影响!5555</div>

javascript:
(function(){ 
var elem = Meng.getId('move'), 
elem2 = Meng.getId('move2'), 
pos = Meng.getElemViewPosition(elem), 
view = Meng.getBrowserView(), 
//灰块运动函数 
move = function(){ 
var t1 = Meng.animate(elem,{top:0,left:0},{top:view.height-100,left:view.width-100},3000,function(){ 
var t2 = Meng.animate(elem,{left:view.width-100},{left:100-view.width},3000,function(){ 
var t3 = Meng.animate(elem,{top:view.height-100},{top:100-view.height},3000,function(){ 
move();//确定t3运动完后,我再回调move()函数。 
}); 
}); 
}); 
}; 
move(); 
// 红块运动函数 
Meng.setStyle(elem2,{top:0,left:(view.width-100)+'px'}); 
var move2 = function(){ 
var t1 = Meng.animate(elem2,{top:0,left:view.width-100},{top:view.height-100,left:100-view.width},3000,function(){ 
var t2 = Meng.animate(elem2,{top:view.height-100},{top:100-view.height},3000,function(){ 
var t3 = Meng.animate(elem2,{left:0},{left:view.width-100},3000,function(){ 
}); 
}); 
}); 
}; 
move2(); 
setInterval(function(){move2();},9050); 
// 红块运动函数 
})();
Javascript 相关文章推荐
客户端js判断文件类型和文件大小即限制上传大小
Nov 20 Javascript
javascript与有限状态机详解
May 08 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 Javascript
简单学习vue指令directive
Nov 03 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
基于vue-cli 打包时抽离项目相关配置文件详解
Mar 07 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
Jun 29 Javascript
vue.js中toast用法及使用toast弹框的实例代码
Aug 27 Javascript
简述vue状态管理模式之vuex
Aug 29 Javascript
前端深入理解Typescript泛型概念
Mar 09 Javascript
何时使用Map来代替普通的JS对象
Apr 29 Javascript
仿猪八戒网左下角的文字滚动效果
Oct 28 #Javascript
js实现双向链表互联网机顶盒实战应用实现
Oct 28 #Javascript
js常用代码段收集
Oct 28 #Javascript
jWiard 基于JQuery的强大的向导控件介绍
Oct 28 #Javascript
理解JSON:3分钟课程
Oct 28 #Javascript
Kibo 用于处理键盘事件的Javascript工具库
Oct 28 #Javascript
stream.js 一个很小、完全独立的Javascript类库
Oct 28 #Javascript
You might like
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
2017/11/30 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
Python数学形态学实例分析
2019/09/06 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
python如何获取apk的packagename和activity
2020/01/10 Python
django queryset相加和筛选教程
2020/05/18 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
python 基于opencv去除图片阴影
2021/01/26 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
控制工程专业个人求职信
2013/09/25 职场文书
公司节能减排倡议书
2014/05/14 职场文书
学生违反校规检讨书
2014/10/28 职场文书
清洁员岗位职责
2015/02/15 职场文书