Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по актуальности свойства для соврем. брауз. clientWidth 
V
    Опции темы
Wolf1994
Дата 25.9.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 4
Всего: 29



Оправдано ли применение свойств:
clientWidth, clientHeight, clientLeft, clientTop?

Все ли современные браузеры их поддерживают?.. В моей документации написано, что "NN - n/a", но ведь на Netscape уже можно не ориентрироваться? А FF 1.5.0.7 уже их поддерживает...
PM MAIL WWW   Вверх
Sardar
Дата 25.9.2006, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Наверное с лет так 5 уже оправданно smile
Хотя это ad-hoc решение на не продуманность style.width, когда поле пустое если не заданно, к тому же строка. Современные браузеры поддерживают ещё и runtimeStyle, где лежат актуальные значения, но client* всё же проще, надёжней, да и лежит там число в пикселах.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Wolf1994
Дата 26.9.2006, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 4
Всего: 29



...Какая-то ерунда у меня вышла с этим свойством... Вроде, скачал скрипт RichMedia с "download-заглушки" Агавы, убрал всё лишнее, запустил и он нормально отработал:

Код

<div>
dfmkfdmf fngs bfb nbfgvjm vrbmb vrkvm kvm vklvnb dmnl<br />
mlkm dfmkfdmf fngs bfb nbfgvjm vrbmb vrkvm kvm vklvnb dmnl<br />
...etc...
</div>

<script>
var RM_Height=300;
var RM_Width=100;
var Client_Width = 0;
var Client_Height = 0;
var RM_Coord_X=0;
var RM_Coord_Y=0;

function Locate_RM_Banner()
{
 Client_Width=document.body.clientWidth;
 Client_Height=document.body.clientHeight;
 RM_Coord_X=Client_Width/2-RM_Width/2;
 RM_Coord_Y=Client_Height/2-RM_Height/2;
 document.getElementById("FlashDiv").style.top=document.body.scrollTop+RM_Coord_Y;
 document.getElementById("FlashDiv").style.left=document.body.scrollLeft+RM_Coord_X;
}


function test()
{
 Locate_RM_Banner();
 window.onscroll=Locate_RM_Banner;
 window.onresize=Locate_RM_Banner;
 document.getElementById("FlashDiv").style.display="";  
}

</script>
<a href="javascript:void(0)" onclick="test()">TEST</a>

<div id='FlashDiv' style='background:green; position:absolute; left:50%; top:50%; width:300px; height:100px; z-index:65535; display:none'>
</div>


Но при написании финального скрипта, пришлось использовать "родные" свойства FireFox - по-другому, ничего не получалось:

Код

  ab_o=document.getElementById("alert_box_id");
  try
  {
   ab_o.style.top=scrollY+(innerHeight/2-50)+"px";
   ab_o.style.left=scrollX+(innerWidth/2-150)+"px";
  }
  catch(e)
  {
   ab_o.style.top=document.body.scrollTop+(document.body.clientHeight/2-50)+"px";
   ab_o.style.left=document.body.scrollLeft+(document.body.clientWidth/2-150)+"px";
  }


Возможно, я что-то упустил. Или же, дело в условиях работы: 1 - вызывался, как приведён, 2 - из внешнего файла, в документе XHTML 1.0 Transitional?

 smile 
PM MAIL WWW   Вверх
Wolf1994
Дата 26.9.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 4
Всего: 29



Цитата

Возможно, я что-то упустил. Или же, дело в условиях работы: ...в документе XHTML 1.0 Transitional?

Выяснил, дело именно в этом.

Спасибо. Вопрос можно считать решённым.
PM MAIL WWW   Вверх
Sardar
Дата 26.9.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Wolf1994 @  26.9.2006,  14:29 Найти цитируемый пост)
Выяснил, дело именно в этом.

Я бы не спешил убирать доктайп, тогда браузер вывалиться в quirksmode, в котором будет рисовать страницы только одному ему известным способом, в каждой бродилке по разному будет.

Что конкретно не работает? Полезно почитать.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Wolf1994
Дата 26.9.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 4
Всего: 29



Цитата

Что конкретно не работает?


В FireFox 1.5.0.7 с продекларированным доктэйпом не работало:

Код

   ab_o.style.top=document.body.scrollTop+(document.body.clientHeight/2-50)+"px";



Цитата

Полезно почитать. 


Приму к сведению.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.