Снова JavaScript...

Старый mweb

Модератор: [mweb team]

Снова JavaScript...

Сообщение Chel1 Вс янв 15, 2006 2:51

Вопрос следующий...
Как при помощи JavaScript узнать ширину уже открытого окна броузера (в идеале рабочей области окна)

предыдущий опыт постов в другие форумы показал, что надо также оговорить отдельно: мне не надо писать про разрешение монитора screen.width а также про верхний левый угол броузера и изменение размеров, перемещение окна... resizeTo, moveTo... мне также нафиг не надо про window.open etc

внимание! ОКНО УЖЕ ОТКРЫТО! НУЖНА ШИРИНА ОТКРЫТОГО ОКНА БРОУЗЕРА!

если кого обидел столь подробным излиянием души, сори, но наболело...
Имею желание иметь всех желающих... но не имею желающих
Аватара пользователя
Chel1
Редко заходит
 
Сообщения: 101
Зарегистрирован: Вт апр 05, 2005 2:18

Сообщение Padonak Вс янв 15, 2006 10:18

бля если бы у меня так наболело я бы книгу купил...

вот тут посмотри. изменишь размеры - обнови окно и будет тебе счастье.
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение aka Time Вс янв 15, 2006 10:21

точно помню, что где-то подобный топик на форуме был. -01- попробуй воспользовацца поиском
Дорогой Дедушка Мороз, доктор запретил мне сладкое, поэтому подари мне, пожалуйста, на Новый Год ящичек полусладкого

http://www.free-lance.ru/users/aka-time
http://aka-che.livejournal.com/
Аватара пользователя
aka Time
Ужратый Гусениц
 
Сообщения: 1675
Зарегистрирован: Пн окт 25, 2004 15:12
Откуда: Москва

Сообщение Jedi Вс янв 15, 2006 12:23

2Padonak, ну не знаешь ответа, ну помолчи тогда, а не посылай человека за книгой.
2aka Time, на то он и форум, чтобы спрашивать, а поиск есть и на яндексе.
Аватара пользователя
Jedi
Хронический Астматик
 
Сообщения: 1852
Зарегистрирован: Вс сен 08, 2002 0:01
Откуда: Russia

Сообщение Padonak Вс янв 15, 2006 12:47

2Jedi: как не знаю? я ведь ему собственноручно пример сделал... поправь шлем он тебе наверное половину монитора закрывает -13- . у меня когда такие вопросы возникли я пошел и не зажавши сто рублей купил книгу (кстати лучший подарок гыгыгыгы). а вот от твоего поста чуваку точно помощи немного -09-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение Jedi Вс янв 15, 2006 19:56

Padonak писал(а):2Jedi: как не знаю? я ведь ему собственноручно пример сделал... поправь шлем он тебе наверное половину монитора закрывает -13- . у меня когда такие вопросы возникли я пошел и не зажавши сто рублей купил книгу (кстати лучший подарок гыгыгыгы). а вот от твоего поста чуваку точно помощи немного -09-

не заметил ссылку, извени
Аватара пользователя
Jedi
Хронический Астматик
 
Сообщения: 1852
Зарегистрирован: Вс сен 08, 2002 0:01
Откуда: Russia

Сообщение Padonak Вс янв 15, 2006 21:24

2Jedi: ну вот -08- да я не обидился извини если я чего сказал не так - меня как Остапа иной раз несет (знакомые на меня никогда не обижаются потому как я не злобный совсем просто язык как помело -09- )
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение Chel1 Пн янв 16, 2006 4:45

Гениально! То что надо!
Жизнь спасли :) -22-
Имею желание иметь всех желающих... но не имею желающих
Аватара пользователя
Chel1
Редко заходит
 
Сообщения: 101
Зарегистрирован: Вт апр 05, 2005 2:18

Сообщение Padonak Пн янв 16, 2006 7:39

-18-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение AtskiySOTONA Пн фев 12, 2007 14:21

вот тут посмотри. изменишь размеры - обнови окно и будет тебе счастье.


А как сделать что бы он менял значения не только при нажатии на кнопку "обновить", а как только я начинаю тянуть страницу он автоматически обновлял эти цифры?
Аватара пользователя
AtskiySOTONA
Прохожий
 
Сообщения: 40
Зарегистрирован: Пн фев 12, 2007 14:02
Откуда: Москва

Сообщение Muerto Пн фев 12, 2007 15:52

2AtskiySOTONA: Событие на onResize повесь и все дела.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Padonak Пн фев 12, 2007 16:00

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Screen and Window sizes</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
<!--
body{color: #000;
background-color: #f8f8ff;
margin: 0px 0px 0px 0px;
font-family: Verdana, Helvetica;
font-size: 14px;
}
#output{
position: absolute;
top: 0px;
left: 0px;
font-weight: bold;
padding: 10px 10px 10px 10px;
border: 2px outset #fff;
}
.colored{
color: #ff0000;
background-color: transparent;
}
-->
</style>
<script language="JavaScript" type="text/javascript">
<!--
function defineScreen(){
var scrWidth = screen.availWidth + " px";
var scrHeight = screen.availHeight + " px";
var winWidth = document.body.clientWidth + " px";
var winHeight = document.body.clientHeight + " px";
var field = document.getElementById("output");
field.innerHTML = "размеры экрана:<br />высота - " + scrHeight + " ширина - " + scrWidth + "<br /><br />Размеры окна:<br />высота - <span class='colored'>" + winHeight + "<\/span> ширина - <span class='colored'>" + winWidth + "<\/span>";
field.style.top = document.body.clientHeight*0.5 - field.offsetHeight/2 + "px";
field.style.left = document.body.clientWidth*0.5 - field.offsetWidth/2 + "px";
}

window.onresize = defineScreen;
//-->
</script>
</head>
<body onload="defineScreen()">
<div id="output"></div>
</body>
</html>
Последний раз редактировалось Padonak Вт фев 13, 2007 0:08, всего редактировалось 1 раз.
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение AtskiySOTONA Пн фев 12, 2007 17:37

Огромное спасибо!! -06-
Аватара пользователя
AtskiySOTONA
Прохожий
 
Сообщения: 40
Зарегистрирован: Пн фев 12, 2007 14:02
Откуда: Москва

Сообщение Padonak Вт фев 13, 2007 0:06

2AtskiySOTONA: всегда пжалста -02-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение AtskiySOTONA Вт фев 13, 2007 18:45

А возможно передать этот параметр в переменную чтобы она тоже автоматом обновлялась?
Аватара пользователя
AtskiySOTONA
Прохожий
 
Сообщения: 40
Зарегистрирован: Пн фев 12, 2007 14:02
Откуда: Москва

Сообщение Padonak Вт фев 13, 2007 19:46

спроси конкретнее я не понимаю что ты имеешь ввиду -08-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение AtskiySOTONA Вт фев 13, 2007 23:49

Мне нужно чтобы при ресайзе цифра ширины экрана постоянно передавалась в переменную.
Могу подробнее объяснить для чего вобще все это нужно.
www.drive.ru - тут при ресайзе окна появляются и исчезают новости справа вверху.
Я хочу сделать что то подобное с "дивами", допустим если окно больше 1024 то выводится 5 дивов, если меньше то 3 дива остальные (visibility:hidden)
Аватара пользователя
AtskiySOTONA
Прохожий
 
Сообщения: 40
Зарегистрирован: Пн фев 12, 2007 14:02
Откуда: Москва

Сообщение Padonak Ср фев 14, 2007 4:16

ну возьми и перед функцией в том скрипте что сверху я написал сделай глобальную переменную которую при срабатывании функции будешь изменять:

var myWidth;

function defineScreen(){
var scrWidth = screen.availWidth + " px";
myWidth = screen.availWidth;
var scrHeight = screen.availHeight + " px";
....

поскольку функция будет срабатывать при любом изменении размеров окна то в эту переменную будут каждый раз передаваться новые значения. и с ней уже манипулируй как хочешь.
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение AtskiySOTONA Ср фев 14, 2007 10:48

Вот что у меня получилось:
var myWidth;
function defineScreen() {
var scrWidth = screen.availWidth + " px";
myWidth = screen.availWidth;
var scrHeight = screen.availHeight + " px";
}
window.onresize = defineScreen;

document.write(myWidth);

Выводит:
undefined
Аватара пользователя
AtskiySOTONA
Прохожий
 
Сообщения: 40
Зарегистрирован: Пн фев 12, 2007 14:02
Откуда: Москва

Сообщение Muerto Ср фев 14, 2007 11:11

2AtskiySOTONA: Ну и правильно выводит! События небыло - функция не вызывалась. Переменная ничему и не равна. А когда ты изменил размеры окна и вызвал событие - твой document.write(myWidth); уже не срабатывает - он вне функции.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Padonak Ср фев 14, 2007 11:12

действительно. ну тогда просто передавай переменную screen.availWidth она ведь сама по себе глобальная
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение AtskiySOTONA Ср фев 14, 2007 11:49

screen.availWidth - выдает всегда максимальное значение (у меня 1280)

Распишите пожалуйста функцию, которая при ширине экрана 640 будет выводить 5 цифр от 1 до 5, а при ширине 1024 - допустим 10
Аватара пользователя
AtskiySOTONA
Прохожий
 
Сообщения: 40
Зарегистрирован: Пн фев 12, 2007 14:02
Откуда: Москва

Сообщение Padonak Ср фев 14, 2007 12:04

ну ты же не меняешь разрешение! а размер окна вернее тела документа в окне это - document.body.clientWidth
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение AtskiySOTONA Ср фев 14, 2007 12:26

Не - не получается... У меня опыта с Java Script совсем мало..

Можете расписать функцию, которая при ширине экрана 640 будет выводить 5 цифр от 1 до 5, а при ширине 1024 - допустим 10??
Аватара пользователя
AtskiySOTONA
Прохожий
 
Сообщения: 40
Зарегистрирован: Пн фев 12, 2007 14:02
Откуда: Москва

Сообщение Muerto Ср фев 14, 2007 12:48

Я смотрю тема ширины и высоты экрана, документа да ещё и в разных броузерах - вопрос возникающий постоянно. На эту тему рекомендую проверенную библиотеку klayers.
2AtskiySOTONA: Так тебе точно нужно по ширине экрана или всё таки по ширине окна броузера определять сколько выводить цифр?
Если по ширине окна то что-нибудь типа:
Код: Выделить всё
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
<script>
function digital(w) {
for (i=1; i<=10; i++) {
if (i<=Math.floor(w/128)) {
document.getElementById('dig'+i).style.display='';
}
else {
document.getElementById('dig'+i).style.display='none';
}
}
}
</script>
</head>

<body onResize="digital(document.body.clientWidth)" onLoad="digital(document.body.clientWidth)">
<span id="dig1">1</span><span id="dig2">2</span><span id="dig3">3</span><span id="dig4">4</span><span id="dig5">5</span><span id="dig6">6</span><span id="dig7">7</span><span id="dig8">8</span><span id="dig9">9</span><span id="dig10">10</span>
</body>
</html>
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение AtskiySOTONA Ср фев 14, 2007 14:22

То что надо! Спасибо), klayers - бум зубрить
Аватара пользователя
AtskiySOTONA
Прохожий
 
Сообщения: 40
Зарегистрирован: Пн фев 12, 2007 14:02
Откуда: Москва


Вернуться в Архив

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

cron