Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужно свокусировать окно на диве. (https://javascript.ru/forum/misc/2114-nuzhno-svokusirovat-okno-na-dive.html)

Николай Анатольевич 04.11.2008 06:38

Нужно свокусировать окно на диве.
 
Размер body w:1000 h:1000
Размер дива по середине: w:100 h:100
Размер окна браузера: w:300 h:300 (Присутствует полоса прокрутки)

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

Заранее благодарю за любую помощь.

Kolyaj 04.11.2008 08:47

Если я правильно понял хитрые условия задачи
window.scrollTo(0, 350);

Николай Анатольевич 04.11.2008 11:58

А если усложнить условия?
 
Все ок. но только есть еще 2 вопроса.

Что если окно прокрученно уже вниз и вбок? Его тогда нужно в другую сторону крутить. Нужен какой нибудь алгоритм чтобы вверх, вниз, вправо и влево мотать окно. Незная какие есть свойства, мне сложно составить алгоритм.

Надо как нить цифру 350 заменить на какой нить алгоритм, подумав вывел такой алгоритм:

((body w)-(div w))/2
(1000 - 300)/2=350
А вот как реализовать это в коде?

Николай Анатольевич 04.11.2008 22:36

Никто не знает?

Николай Анатольевич 04.11.2008 23:34

Ну вобщем сам подумал, поискал, почитал. И родилась такая страница:

Код:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
<style type="text/css">
BODY {
margin:0;
padding:0;
}

#main {
width:2000px;
height:2000px;
background-color:#CCFFFF;
}
</style>
<script language="JavaScript1.2">
function sc(){
window.scrollTo(0,0);
window.scrollTo(900-(document.body.clientWidth-200)/2,900-(document.body.clientHeight-200)/2);
}
</script>
</head>

<body onLoad="sc()">
<div id="main">
<div style="position:absolute; left:900px; top:900px; width:200px; height:200px; background-color:#FF0000;"></div>
</div>
</body>
</html>

Самое интересное что работает в опере отлично.
В ие если по вертикали уже прокрученно то встает на прокрученное место после обновления страницы а не на то место которое указал я.

Такая просьба, как сделать чтобы в остальных браузерах было как в опере?

Посмотрите в других браузерах на возможные проблемы плз


Часовой пояс GMT +3, время: 02:49.