Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个时钟脚本在IE8上失败?_Javascript_Jquery_Internet Explorer 8_Ie8 Compatibility Mode - Fatal编程技术网

Javascript 为什么这个时钟脚本在IE8上失败?

Javascript 为什么这个时钟脚本在IE8上失败?,javascript,jquery,internet-explorer-8,ie8-compatibility-mode,Javascript,Jquery,Internet Explorer 8,Ie8 Compatibility Mode,当右边显示秒数的数字超过7时,所有其他数字都会翻转到下面的数字,直到3秒(我的意思是直到右边的第二个数字达到0)。 这只发生在IE8中 JS: $(文档).ready(函数(){ $('#wrap')。设置动画({opacity:0.0},0); 函数中间(){ wrapTop=($(窗口).height()-$('#wrap').height())/2; wrapLeft=($(窗口).width()-$('#wrap').width())/2; $('#wrap').animate({ma

当右边显示秒数的数字超过7时,所有其他数字都会翻转到下面的数字,直到3秒(我的意思是直到右边的第二个数字达到0)。 这只发生在IE8中

JS:


$(文档).ready(函数(){
$('#wrap')。设置动画({opacity:0.0},0);
函数中间(){
wrapTop=($(窗口).height()-$('#wrap').height())/2;
wrapLeft=($(窗口).width()-$('#wrap').width())/2;
$('#wrap').animate({marginTop:wrapTop,marginLeft:wrapLeft},500);
};
中间();
$(窗口).bind('调整大小',中间);
功能检查时间(prevhour、prevmins、prevsecs){
var now=新日期();
var hour=now.getHours();
如果(小时<10)小时=“0”+小时;
var mins=now.getMinutes();
如果(分钟<10)分钟=“0”+分钟;
var secs=now.getSeconds();
如果(秒<10)秒=“0”+秒;
变量小时=小时+“”;
var mins=mins+“”;
var secs=secs+“”;
如果(前一小时!=小时){
变量prevhour=prevhour+“”
var hoursplit=小时分割(“”);
var prevhoursplit=prevhour.split(“”);
if(prevhoursplit[0]!=hoursplit[0])numberflip(“#hourl”,hoursplit[0]);
if(prevhoursplit[1]!=hoursplit[1])numberflip(“#hourr',hoursplit[1]);
};
如果(前几分钟!=分钟){
var prevmins=prevmins+“”
var minsplit=分钟分割(“”);
var prevminsplit=prevmins.split(“”);
if(prevminsplit[0]!=minsplit[0])numberflip('#minl',minsplit[0]);
if(prevminsplit[1]!=minsplit[1])numberflip('#minr',minsplit[1]);
};
如果(上一秒!=秒){
var prevsecs=prevsecs+“”
var secsplit=secs.split(“”);
var prevsecsplit=prevsecs.split(“”);
if(previsecsplit[0]!=secsplit[0])numberflip('#secl',secsplit[0]);
if(previsecsplit[1]!=secsplit[1])numberflip('#secr',secsplit[1]);
};
函数numberflip(which,number){
if(number!=0)$(which).animate({marginTop:'-'+parseInt((number*140),10)+'px'},250,'linear');
如果(数字==0){
var getmargin=parseInt($(which.css('margin-top')),10;
$(which).animate({marginTop:parseInt((getmargin-140),10)+'px'},250,'linear',function(){
$(this.css(“页边距顶部”、“0px”)
});
};
};
setTimeout(函数(){checktime(小时、分钟、秒);},200);
};
检查时间(00,00,00);
$('#wrap')。设置动画({opacity:1.0},1000);
});
HTML:

<div id="wrap">
        <img id="hourl" class="time" src="nums2.png" />
        <img id="hourr" class="time" src="nums10.png" />
        <img class="time" src="colon.png" />
        <img id="minl" class="time" src="nums6.png" />
        <img id="minr" class="time" src="nums10.png" />
        <img class="time" src="colon.png" />
        <img id="secl" class="time" src="nums6.png" />
        <img id="secr" class="time" src="nums10.png" />
        <div style="clear:left;"> </div>
        <div id="cover"> </div>
    </div>


Live链接是问题的一个很好的附件,但也要在问题中发布相关代码。有两个原因。1.人们不应该通过链接来帮助你。2.StackOverflow不仅是您现在的资源,也是其他将来有类似问题的人的资源。外部链接可以被移动、修改、删除等。通过确保相关代码在问题中,我们可以确保问题(及其答案)在合理的时间内保持有用。有一件事:在每次分配(和重新分配)局部变量之前,您需要停止只随机填充
var
关键字。它应该存在,但只有一次,第一次在函数中使用局部变量。@T.J.Crowder:tnx我是新手@尖头:感谢tnx指出这是一个很好的实践,但对我的问题没有帮助。不用担心。关于
var
,我做了更多的测试,它似乎只针对IE8,在IE7和IE9中运行良好。
<div id="wrap">
        <img id="hourl" class="time" src="nums2.png" />
        <img id="hourr" class="time" src="nums10.png" />
        <img class="time" src="colon.png" />
        <img id="minl" class="time" src="nums6.png" />
        <img id="minr" class="time" src="nums10.png" />
        <img class="time" src="colon.png" />
        <img id="secl" class="time" src="nums6.png" />
        <img id="secr" class="time" src="nums10.png" />
        <div style="clear:left;"> </div>
        <div id="cover"> </div>
    </div>