Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.03.2010, 18:38
Интересующийся
Отправить личное сообщение для возжаждавший Посмотреть профиль Найти все сообщения от возжаждавший
 
Регистрация: 24.02.2010
Сообщений: 27

Как узнать, присутствует ли в окне полоса прокрутки или нет?
Собсно, сабж.

А вообще мне просто нужно узнать, сколько символов может влезть в клиентскую область ДО ТОГО, как появится полоса прокрутки.

ДЛя этого я циклом увеличиваю строку на один символ и меняю текст документа с помощью

document.getElementById('здесь id body').innerHTML="это строка, которая всякий раз увеличивается на один символ"


Ну, вот, как полоса прокрутки появится- символы более не влезают. Количество итераций цикла есть искомое число. Спасибо

P. S. В инете полно ифы на тему как убрать скролл да как изменить, а как узнать есть он или нет, что-то я не нашёл, извините.
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2010, 18:45
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

https://developer.mozilla.org/en/DOM...t.scrollHeight
https://developer.mozilla.org/en/DOM...t.offsetHeight

Если они не сходятся (с учетом паддингов/маргинов) -- то полоса прокрутки есть
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2010, 22:10
Интересующийся
Отправить личное сообщение для возжаждавший Посмотреть профиль Найти все сообщения от возжаждавший
 
Регистрация: 24.02.2010
Сообщений: 27

Ну мне сложно реализовать эту штуку. Понимаете, как только я что-нибудь пишу в тексте, у меня срузу менятся scrollHeight. Было, к примеру, ноль, стало 121

Надо плясать от того, что обозначает scrollHeight. А что оно обозначает?
ВЫсота блока с учётом скроллинга...
http://www.easywebscripts.net/javascript/height.php
Так у меня скроллинг не появляется, полосы прокрутки как не было, так и нет, а scrollHeight меняется.
В общем, непонимание

И потом.
scrollHeight это высота, так ведь?
А у меня строчка если не войдёт в окно браузера, то должна измениться ширина, а не высота

Должна да не обязана.
document.body.scrollWidth и document.body.offsetWidth НЕ МЕНЯЮТСЯ, каким бы большим не был появившийся скроллинг... (ширину который регулирует)
Извините, в общем.

Последний раз редактировалось возжаждавший, 10.03.2010 в 22:12.
Ответить с цитированием
  #4 (permalink)  
Старый 12.03.2010, 22:15
Интересующийся
Отправить личное сообщение для возжаждавший Посмотреть профиль Найти все сообщения от возжаждавший
 
Регистрация: 24.02.2010
Сообщений: 27

Вот, ребята, я написал код с пояснениями. Там же и возникший вопрос и все комментарии.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
<style type="text/css">
body {

	font: 100px Verdana, Arial, Helvetica, sans-serif;

	background-color: #000000;
}
body,td,th {
	color: #FFFFFF;
}

</style></head>

 <script>
  function f () {
   
   //Это вот начальная строка, будет просто цифра 1
    var stroka="1"
		
	//Вот эти две штуки друг другу равны сперва
	alert ("document.body.offsetWidth вне цикла= "+document.body.offsetWidth)
	alert ("document.body.scrollWidth вне цикла= "+document.body.scrollWidth)

	//Теперь будем заполнять строку символами. Как только offsetWidth!=scrollWidth, заполнять перестанем
   	while (document.body.offsetWidth== document.body.scrollWidth) {
		stroka+="1"
		document.getElementById('body').innerHTML = stroka

	 //Вот эта штука должна увеличиваться, как только появится полоса горизонтальной прокрутки, но она не увеличивается
	 //В огненной лисе!
	 //А в осле ситуация тожн смешная. С появлением полосы прокрутки, document.body.scrollWidth, как ей и положено,
	 //увеличивается. Но одновременно с этим увеличивается и document.body.offsetWidth!
	 //Что же делать, друзья?
	 //Мне надо выводить строку, пока не появится полоса прокрутки!
	 //В общем, выручайте
	 alert ("в цикле= document.body.scrollWidth"+document.body.scrollWidth)
     
	 alert ("в цикле= document.body.offsetWidth"+document.body.offsetWidth)
 	}
  }
 </script>
<body id="body" onload="f()">
</body>




</html>
Ответить с цитированием
  #5 (permalink)  
Старый 12.03.2010, 22:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от возжаждавший
//Вот эта штука должна увеличиваться, как только появится полоса горизонтальной прокрутки, но она не увеличивается
//В огненной лисе!
//А в осле ситуация тожн смешная. С появлением полосы прокрутки, document.body.scrollWidth, как ей и положено,
//увеличивается. Но одновременно с этим увеличивается и document.body.offsetWidth!
//Что же делать, друзья?
Выставить фон у body и увидеть, что так оно и есть на самом деле. document.documentElement попробуйте вместо document.body.
Ответить с цитированием
  #6 (permalink)  
Старый 12.03.2010, 22:48
Интересующийся
Отправить личное сообщение для возжаждавший Посмотреть профиль Найти все сообщения от возжаждавший
 
Регистрация: 24.02.2010
Сообщений: 27

Зачем фон? Цвет фона что ли?
НО как бы то ни было, documentElement помогло в обоих браузерах!

Только надо условие так записать:
document.documentElement.offsetWidth>= document.documentElement.scrollWidth

И всё будет ОК. Спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 12.03.2010, 23:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от возжаждавший
Зачем фон?
Чтобы увидеть, что ширина body в FF действительно не увеличивается, но скролится при этом не body, а в IE действительно увеличивается.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить нажата какая-либо клавиша или нет? Бобр Общие вопросы Javascript 35 11.11.2016 18:42
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
Как проверить анимируется в данный момент элемент или нет sysya jQuery 2 15.01.2010 00:32
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09