Przez jakiś czas próbowałem mieć funkcję obracania (xdeg) na IE 8, 7 i 6, przez jakiś czas google i znalazłem cssSandpaper, ale ponieważ muszę załadować 4 różne skrypty, które chcę zrobić to tylko wtedy, gdy to konieczne do tego im przy modernizr Próbuję coś takiego:Modernizacja z 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>
mój plik 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;
}
moim pliku 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
Działa świetnie na safari, Chrome, Opera, Firefox i IE9, ale gdy próbuję na IE8 lub IE7 pojawia się następujący błąd na konsoli
SCRIPT5007: Unable to get value of the property 'addEventListener': object is null or undefined EventHelpers.js, line 49 character 9
dodałem console.log, aby spróbować dowiedzieć się, co było dzieje i udał się do tej linii to jest tutaj (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
na następnym biegu sprawdziłem ponownie konsolę piłę to LOG: null
, nie jestem ekspertem o JavaScript, więc nie jestem pewien, co jest dzieje się, ale próbuję czegoś innego i dodałem cssSandPaper za pomocą znacznika script: tak:
<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>
Ku mojemu zaskoczeniu zadziałało jak urok, i tak to mam funkcję obracania nawet w IE7 i IE8, a konsola powiedzieć to teraz LOG: [obiekt HTMLScriptElement] ale jestem świadomy, że używając tego sposobu będę zawsze ładowanie tych 4 skryptów, nawet jeśli nie są one konieczne i nie jest to celem, ale ponieważ zaczynam od modernizr i javacript na hones, nie mam pojęcia, co się dzieje D: i dlaczego kiedy ładuję skrypty używając nope: [' "] od modernizmu nie działa. ktoś wie, jak to rozwiązać? ... przykro mi, że mój angielski nie jest moim pierwszym językiem
edytuj: Zrobiłem trochę badań na temat tego obiektu HTMLScriptElement i jego przypuszczalnie odwołać się do tagu skryptu Przypuszczam, że po załadowaniu pliku js z nope: from modernizr coś się zmieniło i obiekt ten stał się pusty, ponieważ nie jest już ładowany wewnątrz znacznika skryptu ... ale nadal mam ten sam problem ... jak to rozwiązać? :/
jsFiddle Test without Modernizr
Odpowiedź: skończyło się używając jeśli lt IE 9 załadować skrypty papierem ściernym to swoją robotę
Czy możesz dodać jsfiddle? – armonge