2012-09-20 31 views
13

我一直在努力尝试在IE 8,7和6上的旋转(xdeg)功能,对于这个我谷歌一段时间,发现cssSandpaper,但由于我必须加载4个diferents脚本我想做它只有当它需要使用modernizr我尝试这样的事情该即时通讯:Modernizr用cssSandpaper?

<head> 

     <link rel="stylesheet" href="stilos/estilo.css" /> 
     <script src="scripts/modernizr.custom.19387.js"></script> 
     <script src="scripts/jquery-1.8.1.js"></script> 
     <script src="scripts/misfallbacks.js"></script> 
</head> 

<body> 
    <div id="acerca"><a href="#">Acerca de mi</a></div> 
</body> 

我的CSS文件(estilo.css):

#acerca{ 
    -webkit-transform: rotate(90deg); 
    -moz-transform: rotate(90deg); 
    -o-transform: rotate(90deg); 
    -ms-transform:rotate(90deg); 
    -sand-transform:rotate(90deg); 
    position: relative; 
    top: -233px; 
    left: 462px; 
    width: 123px; 
    height: 23px; 
    z-index:100; 
} 

我的js文件(misfallbacks.js)

Modernizr.load({ 
     test:Modernizr.csstransforms, 
     nope:['transformie/EventHelpers.js/','transformie/cssQuery-p.js','transformie/sylvester.js','transformie/cssSandpaper.js'] 

    );//Fin de monernizr on load 

它在Safari,铬,歌剧,火狐和IE9,但伟大的作品,当我尝试在IE8或IE7我得到的控制台
SCRIPT5007: Unable to get value of the property 'addEventListener': object is null or undefined EventHelpers.js, line 49 character 9
以下错误我加了的console.log,试图找出是什么事情走到这条线在这里是(EvenHelpers.js):

me.addEvent = function(obj, evType, fn){ 
     console.log(obj);//I've added this to try to figure out what is going on 
     if (obj.addEventListener) {........//here is the error 
在下次运行我检查再次控制台中看到这个 LOG: null

,我对JavaScript的没有专家,所以我不会知道什么是继续,但我尝试了不同的东西,并使用脚本标签添加了cssSandPaper,如下所示:

<head> 

    <link rel="stylesheet" href="stilos/estilo.css" /> 

    <script src="scripts/modernizr.custom.19387.js"></script> 
    <script src="scripts/jquery-1.8.1.js"></script> 
    <!--<script src="scripts/misfallbacks.js"></script>--> 
    <script src="transformie/EventHelpers.js"></script> 
    <script src="transformie/cssQuery-p.js"></script> 
    <script src="transformie/sylvester.js"></script> 
    <script src="transformie/cssSandpaper.js"></script> 
</head> 

让我吃惊的工作就像一个魅力,这样我甚至在IE7和IE8和控制台的旋转功能说这个现在LOG:对象HTMLScriptElement],但即时知道,使用这种方式,我将永远加载这4个脚本,即使它们不是必需的,但这不是我的目标,但是因为我现在开始使用modernizr和javacript,所以我不知道发生了什么D:为什么当我使用nope加载脚本时:[' ']从modernizr不工作。任何人都知道解决这个问题的方法? ...我很抱歉我的英语不是我的第一个语言错误

编辑:我做了一个关于这个对象的小研究HTMLScriptElement和它的假设引用脚本标记我想当我加载js文件nope时:从modernizr改变了一些东西,并且这个对象变成了null,因为它不再被加载到脚本标签中了......但是我仍然遇到同样的问题......我该如何解决这个问题? :/

jsFiddle Test Modernizr

jsFiddle Test without Modernizr

答: 我结束了使用如果LT IE 9加载砂纸脚本就得到了这份工作做

+1

你可以添加一个jsfiddle吗? – armonge

回答

4

我曾尝试与不同,更容易的方法来解决这个问题。它为我工作,我希望它也适用于你。我包括IE9.JS(js使得IE浏览器的行为像IE9 +标准兼容)。你可以访问这个链接知道如何做到这一点。 http://code.google.com/p/ie7-js/

然后我稍微修改你的CSS estilo.css如下。 我将以下样式添加到#acerca样式定义中。

filter:'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)'; 

它工作。唯一的问题是这种转换不像-ms转换或任何其他标准web转换那样可读。

+0

这也是工作,但我最终使用<! - [if lt IE 9] >加载砂纸脚本它也完成了这项工作是网站,如果有人想检查出来http://www.luisz.alojalo.info/Portafolio/ –

0

OK,你给我买我在这半小时内选址 在init函数行445中的EventHelpers.js中存在一个错误,它有一个cc_on语句,所以只有ie会读取它。

现在它在运行时创建一个脚本标记,该标记未被创建,因此它等于null。 和代码是休息!

我修改了EventHelpers.js并修复了问题。 原代码编写与document.write 我将其更改为document.createElement script标签,它似乎在consloe工作没有错误

的jsfiddle: http://jsfiddle.net/5xdDG/3/

现在它真的应该,即使在IE7或6旋转格因为在jsfiddle我看不到它旋转?

,我很抱歉,英语不是我的第一语言;)

+0

不要在控制台上显示错误,但仍然不起作用 –

0

这似乎是一个脚本,需要对方后加载。

尝试使用这个脚本:

if (!Modernizr.csstransforms){ 
    Modernizr.load({ 
     load: 'transformie/EventHelpers.js', 
     complete: function() { 
      console.log("loaded EventHelpers"); 

      Modernizr.load({ 
       load: 'transformie/cssQuery-p.js', 
       complete: function() { 
        console.log("loaded cssQuery"); 
        Modernizr.load({ 
         load: 'transformie/sylvester.js', 
         complete: function() { 
          console.log("loaded sylvester"); 

          Modernizr.load({ 
           load: 'transformie/cssSandpaper.js', 
           complete: function() { 
            console.log("loaded cssSandpaper"); 
           } 
          }); 

         } 
        }); 
       } 
      }); 

     } 
    }); 

}; 
+0

仍然不起作用@CarlosMartinez –

+0

对我不起作用:/ –