Показать сообщение отдельно
  #1 (permalink)  
Старый 14.11.2010, 22:44
Новичок на форуме
Отправить личное сообщение для nickolasha Посмотреть профиль Найти все сообщения от nickolasha
 
Регистрация: 14.11.2010
Сообщений: 5

Не могу прочитать свойство left, объявленное в <style>
Здравствуйте.
Подскажите, почему я не могу получить доступ в свойству left, если оно обявлено внутри тэга style в заголовке страницы или во внешнем css файле, а если объявляю внутри тэга в аттрибуте style, то доступно это свойство
<html>
<head>
<title>Test</title>
<STYLE TYPE="text/css">
H1{position:relative; left:-1000px}
</STYLE>
<script>
function slideIn(){
var el = document.all.tip;
alert(el.style.left);
if(-1000 == el.style.pixelLeft){
el.style.fontStyle = "italic";
el.style.pixelLeft = document.body.offsetWidth;
}
if(20 <= el.style.pixelLeft){
el.style.pixelLeft -=20;
setTimeout("slideIn()",50);
}
else{
el.style.pixelLeft = 0;
el.style.fontStyle = "";
}
}
</script>
</head>
<body onload="slideIn()">
<H1 ID="tip"> Tip of the week</H1>
<P>Animating text from off screen

</body>
</html>


В этом файле позиционирование и смещение применяется, но при выводе alert, оно выводится пустым и поэтому не работает скрипт.
А если объявляю так, то alert выводит сообщение со значением left и скрипт работает:

<html>
<head>
<title>Test</title>
<STYLE TYPE="text/css">
H1{position:relative}
</STYLE>
<script>
function slideIn(){
var el = document.all.tip;
alert(el.style.left);
if(-1000 == el.style.pixelLeft){
el.style.fontStyle = "italic";
el.style.pixelLeft = document.body.offsetWidth;
}
if(20 <= el.style.pixelLeft){
el.style.pixelLeft -=20;
setTimeout("slideIn()",50);
}
else{
el.style.pixelLeft = 0;
el.style.fontStyle = "";
}
}
</script>
</head>
<body onload="slideIn()">
<H1 ID="tip" style="left:-1000px"> Tip of the week</H1>
<P>Animating text from off screen
</body>
</html>


Попробовал во всех популярных браузерах. Не могу понять в чём причина. Подскажите почему так происходит.

Спасибо
Ответить с цитированием