Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.10.2010, 00:31
Новичок на форуме
Отправить личное сообщение для spbspidir Посмотреть профиль Найти все сообщения от spbspidir
 
Регистрация: 10.10.2010
Сообщений: 5

Не работает выравнивание.
Выравнивает только по ширине, по высоте ни как...Ошибок не находит,
Обозреватель IE-8.
function winResize(){
    var contObj=document.getElementById("photo");
	var bodyObj=document.body;
	var contWidth=contObj.offsetWidth;
	var contHeight=contObj.offsetHeight;
	var bodyWidth=bodyObj.clientWidth;
	var bodyHeight=bodyObj.clientHeight;
	contObj.style.left=(bodyWidth-contWidth)/2+"px";
	contObj.style.top=(bodyHeight-contHeight)/2+"px";
}
window.onresize=winResize;
winResize();
Ответить с цитированием
  #2 (permalink)  
Старый 12.10.2010, 01:55
Интересующийся
Отправить личное сообщение для SilentImp Посмотреть профиль Найти все сообщения от SilentImp
 
Регистрация: 12.10.2010
Сообщений: 21

Может быть имеет смысл решить эту задачу через CSS?

Кстати, проверь, определены ли значения по высоте. Раз не выравнивает, то либо у photo позиционирование static, либо contHeight/bodyHeight undefined.
Ответить с цитированием
  #3 (permalink)  
Старый 12.10.2010, 02:03
Новичок на форуме
Отправить личное сообщение для spbspidir Посмотреть профиль Найти все сообщения от spbspidir
 
Регистрация: 10.10.2010
Сообщений: 5

Для меня непонятное решение проблемы...
убрал строку в начале документа
"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">"
И всё заработало...
Может кто объяснит
Ответить с цитированием
  #4 (permalink)  
Старый 12.10.2010, 07:43
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Чтобы понять причину нужно привести HTML-код тоже
Ответить с цитированием
  #5 (permalink)  
Старый 12.10.2010, 11:29
Интересующийся
Отправить личное сообщение для SilentImp Посмотреть профиль Найти все сообщения от SilentImp
 
Регистрация: 12.10.2010
Сообщений: 21

Вы убрали DOCTYPE и браузер перешел в квирк-мод.
Это не есть гуд. Почему? Прочтите зачем нужен DOCTYPE и почему квирк-мод это плохо.

http://webmascon.com/topics/coding/25a.asp
Ответить с цитированием
  #6 (permalink)  
Старый 12.10.2010, 19:34
Новичок на форуме
Отправить личное сообщение для spbspidir Посмотреть профиль Найти все сообщения от spbspidir
 
Регистрация: 10.10.2010
Сообщений: 5

Так вот, сценарий со строкой DOCTYPE работает не правильно, не выравнивает по высоте!!!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Документ без названия</title>
<style>
.photo {
	height: 100px;
	width: 100px;
	position: absolute;
	left: 50px;
	top: 50px;
	background-color: #000;
}
</style><script>
function winResize(){
    var contObj=document.getElementById("photo");
	var bodyObj=document.body;
	var contWidth=contObj.offsetWidth;
	var contHeight=contObj.offsetHeight;
	var bodyWidth=bodyObj.clientWidth;
	var bodyHeight=bodyObj.clientHeight;
	contObj.style.left=(bodyWidth-contWidth)/2+"px";
	contObj.style.top=(bodyHeight-contHeight)/2+"px";
}
</script></head>
<div id="photo" class="photo">&nbsp;</div>
<script>
  window.onresize=winResize;
  winResize();
</script>
<body>
</body>
</html>

Последний раз редактировалось spbspidir, 12.10.2010 в 19:47.
Ответить с цитированием
  #7 (permalink)  
Старый 12.10.2010, 23:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

spbspidir,
Размеры окна браузера
)))
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Документ без названия</title>
<style>
.photo {
	height: 100px;
	width: 100px;
	position: absolute;
	left: 50px;
	top: 50px;
	background-color: #000;
}
</style>
<script>
function winResize(){
    var contObj=document.getElementById("photo");
	var bodyObj=document.documentElement;
	var contWidth=contObj.offsetWidth;
	var contHeight=contObj.offsetHeight;
	var bodyWidth=bodyObj.clientWidth;
	var bodyHeight=bodyObj.clientHeight;
	contObj.style.left=(bodyWidth-contWidth)/2+"px";
	contObj.style.top=(bodyHeight-contHeight)/2+"px";
}
</script></head>
<body>
<div id="photo" class="photo">&nbsp;</div>
<script>
  window.onresize=winResize;
  winResize();
</script>
</body>
</html>

Последний раз редактировалось рони, 12.10.2010 в 23:11.
Ответить с цитированием
  #8 (permalink)  
Старый 13.10.2010, 03:13
Интересующийся
Отправить личное сообщение для SilentImp Посмотреть профиль Найти все сообщения от SilentImp
 
Регистрация: 12.10.2010
Сообщений: 21

spbspidir ... есть чудесная штука — w3c html validator (http://validator.w3.org/).
Она учит не пихать div и script куда не надо. Как .photo вообще позиционировать относительно body, если оно не является дочерним элементом и расположено там, где его быть не может.

Кроме того если известен размер изображения то с какого перепугу вообще скрипт использовать? Даже если не известно, то задачу можно решить с помощью pure css.

Стиль исправь на нижеприведенный, скрипт убери вообще, div помести ВНУТРЬ body.
.photo {
height: 100px;
width: 100px;
position: absolute;
left: 50%;
top: 50%;
margin:-50px 0 0 -50px;
background-color: #000;
}

Ну еще можешь html,body height/min-height:100%; добавить.
Это для случая когда ты знаешь размер картинки.
А если не знаешь, то:
http://cssing.org.ua/2007/04/26/anot...valign-method/
http://habrahabr.ru/tag/вертикальное%20выравнивани /
http://www.jakpsatweb.cz/css/css-ver...-solution.html
и еще 100500 статей.

Не думаю, что тебе для этого нужен скрипт.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11
Не работает eval в IE ..::Silence::.. Общие вопросы Javascript 8 25.03.2009 13:16
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32