求助!只要打开/查看其他标签就会出错的JS!

问题描述

遇到一件很蛋疼的事,用js做了个效果,一直盯着是没问题的,但只要我不看这个页面去看其他页面(打开新的标签或查看其他标签),一阵子回来就会发现这个效果出错了……DEMO:JS部分代码functionInfoBox(containerId){this.oContainer=document.getElementById(containerId);this.oaInfoBox=this.oContainer.getElementsByTagName("li");this.autoTimer=this.changeHeightTimer=this.changeOpacityTimer=null;}InfoBox.prototype={init:function(){this.autoScroll();},listenToMouse:function(){},autoScroll:function(){varself=this;this.autoTimer=setInterval(function(){self.toggle();},3000);},toggle:function(){varendIndex=this.oaInfoBox.length-1;varlastLi=this.oaInfoBox[endIndex];this.oContainer.insertBefore(lastLi,this.oContainer.firstChild);vartargetHeight=this.oaInfoBox[0].offsetHeight;this.oaInfoBox[0].style.height=0+"px";this.oaInfoBox[0].style.opacity="0";this.oaInfoBox[0].style.filter="alpha(opacity=0)";this.changeHeight(targetHeight);},changeHeight:function(targetHeight){varself=this;varspeed=newHeight=0;clearInterval(self.changeHeightTimer);this.changeHeightTimer=setInterval(function(){speed=(targetHeight-newHeight)/8;newHeight+=speed;self.oaInfoBox[0].style.height=newHeight+"px";//testbeginvarspan=document.getElementById("test");span.innerHTML="speed:"+speed+"/targetHeight:"+targetHeight+"/height:"+newHeight;//testendif(speed<=0.1){self.oaInfoBox[0].style.height=targetHeight+"px";self.showDiv();clearInterval(self.changeHeightTimer);}},30);},showDiv:function(){varself=this;varargOpacity=0;clearInterval(this.changeOpacityTimer);this.changeOpacityTimer=setInterval(function(){argOpacity+=5;self.oaInfoBox[0].style.opacity=argOpacity/100;self.oaInfoBox[0].style.filter="alpha(opacity="+argOpacity+")";if(argOpacity>=100){clearInterval(self.changeOpacityTimer);}},30);}}

解决方案

本帖最后由 yqjun123 于 2011-10-29 15:38:02 编辑
解决方案二:
帮顶,lz这个问题遇到过.后来换其他方法.
解决方案三:
你所说的出错迹象是下半部分有空白?没有挨着轮?
解决方案四:
窗体不是当前窗体时.执行这个clearInterval让它停止.是当前窗体时,继续执行.试试..
解决方案五:
印象中还是第一次遇到这种问题。。难道是传说中的don'tblink?
解决方案六:
试了试只有webkit内核的浏览器会出现。IE无此现象,是跟渲染有关?
解决方案七:
引用5楼konghulu的回复:

试了试只有webkit内核的浏览器会出现。IE无此现象,是跟渲染有关?

对safari这样的webkit内核不会出现这样的情况.火狐就会出现..
解决方案八:
引用5楼konghulu的回复:

试了试只有webkit内核的浏览器会出现。IE无此现象,是跟渲染有关?

引用6楼jayrao5566的回复:

引用5楼konghulu的回复:试了试只有webkit内核的浏览器会出现。IE无此现象,是跟渲染有关?对safari这样的webkit内核不会出现这样的情况.火狐就会出现..

chrome和firefox都会喔……郁闷死了……
解决方案九:
引用1楼jayrao5566的回复:

帮顶,lz这个问题遇到过.后来换其他方法.

其他方法是指什么呢?求助~
解决方案十:
引用3楼jayrao5566的回复:

窗体不是当前窗体时.执行这个clearInterval让它停止.是当前窗体时,继续执行.试试..

哦……看到了……试试先……

时间: 2024-09-20 09:55:36

求助!只要打开/查看其他标签就会出错的JS!的相关文章

阿云浏览器如何关闭“打开多个标签页时关闭浏览器”的自动提醒

  用户可以打开"阿云浏览器设置",在"常用设置"下的"自动提醒"中,取消勾选"打开多个标签时关闭浏览器"即可,如下图所示:

页面代码-如何查看自定义标签中被别人封装起来的代码,求高人指教!

问题描述 如何查看自定义标签中被别人封装起来的代码,求高人指教! 手里有个别人写的小项目,里边有些自己封装的标签,但是标签里边具体的方法却看不到,有人说是通过反编译工具可以看到,但是找了半天只找到了能反编译java代码的工具,但是找不到能反编译页面代码的,这个项目的页面是用jsp+js写的,里边也用了些struts2的自定义标签.怎样才能查看,请高手给我指条明路吧! 解决方案 标签有两种实现方式: 1.最简单的,通过tag实现,这个tag就是个小的JSP,需要被容器编译后才能执行: 2.自定义标

javascript-怎么把用frame打开的URL页面放大,怎么写js可以吗自动放大缩写网站

问题描述 怎么把用frame打开的URL页面放大,怎么写js可以吗自动放大缩写网站 var url = "http://192.168.1.196/kkyul/ appcan.frame.open("content", url, 0, parseInt(titHeight)+parseInt(content)); 我想把这个url页面放大,不在URL本页面操作,有什么方法可以实现用js 或jquery 都可以.汗可以再详细点吗, 解决方案 function reinitIfr

求助!vc 6.0 搭建openssl运行出错

问题描述 求助!vc 6.0 搭建openssl运行出错 openssl已经编译成功.但在搭建运行一小段程序时报错. #include #include int main() { OpenSSL_add_all_algorithms(); return 0; } 报错如下图: 希望各位大神帮帮忙. 解决方案 把两段代码都截个图来看一下 解决方案二: VC++6.0新建工程,运行出错.VC6.0中对于openssl函数的调用 解决方案三: vc看是否支持对应的版本

求助:FreeTetBox添加中文字体时,出错!

问题描述 求助:FreeTetBox添加中文字体时,出错!我在网上找的代码:Toolbartoolbar1=FreeTextBox1.Toolbars[0];//此处的0表示第一个toolbar.FontFacesMenufontmenu=(FontFacesMenu)toolbar1.Items[1];//freetextbox中加载字体的类为FontFacesMenu,这是FontFacesMenu在toolar中的索引.InstalledFontCollectioninstalledFon

Firefox如何让打开的新标签和书签在后台载入

  打开firefox,在地址栏输入about:config,分别找到下面两项:browser.tabs.loadDivertedInBackground (标签),browser.tabs.loadBookmarksInBackground (书签),将其赋值为True.

C#如何获取IE浏览器打开的所有标签?

问题描述 RT,SHDocVw.ShellWindowsshellWindows=newSHDocVw.ShellWindowsClass();stringfilename;foreach(SHDocVw.InternetExplorerieinshellWindows){filename=Path.GetFileNameWithoutExtension(ie.FullName).ToLower();if(filename.Equals("iexplore")){Console.Wri

解决Foxmail打开提示已停止工作,报错打开查看是ntdll.dll模块问题

出现问题如下图所示 解决办法 一.杀毒软件问题 1.我们找到foxmail安装目录,看看安装目录中的foxmail目录是不是只读了,查看方法是右击 foxmail 在弹出菜单我们点击"属性"看看是不是只读,如果是取消只读即可: 2.确定后,尝试打开foxmail,如果依然打不开,可重新查看foxmail文件夹是否变成只读,如果是则是由于杀毒软件误报造成的这个现象,此问题通常与360杀毒和安全卫士相关,建议先卸载了360杀毒,如果无效请卸载了安全卫士并重启. 二.输入法问题 这个问题可能

求助!打开MapInfo出错

问题描述 打开MapInfo出现下面错误oracleerror:InitializingOCIenvironmenthandle.Ifyouneedmoreimformation,pleasecontactMapinfoTechnicalSupport请问该如何解决,本人新手,希望各位高手帮忙解决下,解决方法尽量详细些!! 解决方案 解决方案二:这个没事吧,应该是你装了DBMS组件才会有这个错指的是你连接oracle失败了.就是不能将读取oracle里的数据文件..没啥关系