10.03.2010, 18:38
|
Интересующийся
|
|
Регистрация: 24.02.2010
Сообщений: 27
|
|
Как узнать, присутствует ли в окне полоса прокрутки или нет?
Собсно, сабж.
А вообще мне просто нужно узнать, сколько символов может влезть в клиентскую область ДО ТОГО, как появится полоса прокрутки.
ДЛя этого я циклом увеличиваю строку на один символ и меняю текст документа с помощью
document.getElementById('здесь id body').innerHTML="это строка, которая всякий раз увеличивается на один символ"
Ну, вот, как полоса прокрутки появится- символы более не влезают. Количество итераций цикла есть искомое число. Спасибо
P. S. В инете полно ифы на тему как убрать скролл да как изменить, а как узнать есть он или нет, что-то я не нашёл, извините.
|
|
10.03.2010, 18:45
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
|
|
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.
|
|
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>
|
|
12.03.2010, 22:29
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от возжаждавший
|
//Вот эта штука должна увеличиваться, как только появится полоса горизонтальной прокрутки, но она не увеличивается
//В огненной лисе!
//А в осле ситуация тожн смешная. С появлением полосы прокрутки, document.body.scrollWidth, как ей и положено,
//увеличивается. Но одновременно с этим увеличивается и document.body.offsetWidth!
//Что же делать, друзья?
|
Выставить фон у body и увидеть, что так оно и есть на самом деле. document.documentElement попробуйте вместо document.body.
|
|
12.03.2010, 22:48
|
Интересующийся
|
|
Регистрация: 24.02.2010
Сообщений: 27
|
|
Зачем фон? Цвет фона что ли?
НО как бы то ни было, documentElement помогло в обоих браузерах!
Только надо условие так записать:
document.documentElement.offsetWidth>= document.documentElement.scrollWidth
И всё будет ОК. Спасибо!
|
|
12.03.2010, 23:00
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от возжаждавший
|
Зачем фон?
|
Чтобы увидеть, что ширина body в FF действительно не увеличивается, но скролится при этом не body, а в IE действительно увеличивается.
|
|
|
|