javascript - Sprite 图像的背景位置在 IE 中无法用于倒计时时钟

标签 javascript jquery

我有一个非常棒的倒计时时钟,它在 Chrome 中运行良好,但在 IE 中根本不起作用。感谢 Stack Overflow 用户 Roko 帮助我整理了该项目。有人知道如何在 IE 上实现此功能吗?

这是 JS

var fut = new Date("Dec 19 2013 21:15:00 UTC-05:00")
    obj = {};

// Number splitter
function intSpl( i ){
  i = Math.floor(i);
  return [~~(i/10), i%10];  
}

function drawTime(){  
  var now = new Date().getTime(),   
      dif = now<fut ? Math.floor( (fut-now)/1000) : 0;
  obj.s = intSpl(dif % 60);
  obj.m = intSpl(dif/60 % 60);
  obj.h = intSpl(dif/60/60 % 24);
  obj.d = intSpl(dif/60/60/24);  

  for(var key in obj){    
     if(obj.hasOwnProperty(key)){
        for(var i=0; i<2; i++){ 
            $('#'+ key+i).css({backgroundPosition: -obj[key][i]*50 });
        }
     }    
  }  
}
drawTime(); 
setInterval(drawTime, 1000);

这是 fiddle http://jsfiddle.net/qLTE2/7/

最佳答案

你能试试这个吗,原因是IE不支持dateformat,我在IE8中测试过。它工作正常。 var fut = new Date(Date.UTC(2013, 12, 19, 21, 15, 0));//更改格式,即日期格式应该是 - new Date(年、月[、日、时、分、秒、毫秒]);

引用:有关日期的链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FDate

//var fut = new Date("Dec 19 2013 21:15:00 UTC-05:00");

var fut = new Date(Date.UTC(2013, 12, 12, 21, 15, 0)); //format - new Date(year, month [, day, hour, minute, second, millisecond]);
obj = {};

//Number splitter
function intSpl( i ){
    i = Math.floor(i);
    return [~~(i/10), i%10];  
}




function drawTime(){  
    var now = new Date().getTime(); 

    var  dif = now<fut ? Math.floor( (fut-now)/1000) : 0;

    console.log("fut::"+fut +":::now"+now); // fut is NaN thats why it is not working

    obj.s = intSpl(dif % 60);
    obj.m = intSpl(dif/60 % 60);
    obj.h = intSpl(dif/60/60 % 24);
    obj.d = intSpl(dif/60/60/24);  


        for(var key in obj){    
              if(obj.hasOwnProperty(key)){
                 for(var i=0; i<2; i++){ 
                     $('#'+ key+i).css({backgroundPosition: -obj[key][i]*50 });       

                     console.log(key+":::"+i+':::PX set'+ -obj[key][i]*50);
                 }
              }    
        }  
    }

    drawTime(); 
    setInterval(drawTime, 1000);

CSS:

    #clock span{
      display:inline-block;
      width:50px;
      height:85px;
      background-image:url('time.jpg');
      background-position:0 0;
      /*background-color: #ffff00;*/ //added for testing
    }

演示:http://jsfiddle.net/qLTE2/8/

关于javascript - Sprite 图像的背景位置在 IE 中无法用于倒计时时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851545/

相关文章:

jquery - 更改 View 并显示所选日期的 View

javascript - 我如何在此代码中折叠 ="false"

javascript - 无法比较条件语句中int类型的v​​ar

javascript - var card= cleanNum : function(){. ...} 这个 cleanNum : mean? 是做什么的

javascript - Fabric.js 从 JSON 异步渲染

javascript - 在 JavaScript 中从一个 LatLng 到另一个获取度数 (0-360)

javascript - 从 API : array is interpreted as a string 获取 json

jquery - 如何在Jquery中使用标签类获取div类

jquery - firebug 中偶尔会显示 "Image corrupt or truncated"

jquery - 如何通过类名和位置检索元素