Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Высоты содержимого страницы...


Автор: Romiz 28.9.2006, 22:23
Доброго времени суток Всем!

Пытался написать функцию, которая должна делать следующее:
 если страница большая и имеет вертикальные полосы прокрутки, то задавать элименту стиль, например  
Код

<div id="footer"  style="position: inherit"> footer section </div>

а если содержимого мало и полосы прокрутки неактивны то просто:
Код

<div  id="footer"  style="position: absolute"> footer section </div>


Для решения проблемы нашел что-то вот такое:
Код

<script language="javascript">
function myfun()
{
  obj = document.getElementById("footer");
  if(document.body.scrollHeight > document.body.clientHeight)
   {
     obj.style.position="absolute";
   }else { obj.style.position="inherit";}
}
</script>

это вызывается следующим образом :
Код

<body onload="myfun();">


Я не сомневаюсь что где-то в этом есть ошибка!
Если кто знает в чем проблема, пожалуйста, подскажите мне. smile 

Хотел найти инфу по всем свойствам объектов, но чё то об этом ничего...  може кто подскажет где найти можно 

Заранее премного благодарен  smile 

Автор: vasac 29.9.2006, 07:19
И в чем же выражается ошибка?

Цитата(Romiz @  28.9.2006,  22:23 Найти цитируемый пост)
Хотел найти инфу

А где искал? Первым делом ищи на w3c, конкретно в твоем случае это будет спецификация DOM.
На русском здесь хорошо описано — http://wdh.suncloud.ru/dhtml01.htm#ref4

Автор: GoodBoy 29.9.2006, 10:05
Цитата(Romiz @  28.9.2006,  23:23 Найти цитируемый пост)
Хотел найти инфу по всем свойствам объектов

ты сам можешь посмотреть свойства любого объекта. для этого воспользуйся этим несложным скриптом:

Код
<script>
function showProperties(obj) {
    var str = '';
    var str1 = '';
    var str2 = '';

    for (i in obj) {
        if (i.indexOf("on")==0) {
            try {
                str1 += i+" = "+ obj[i]+"\n";
            } catch(e) {
                str1 += i+" = ERROR READ!!!\n";
            }
        } else {
            try {
                if (''+obj[i]!='') str += i+" = "+ obj[i]+"\n";
                else str2 += i+" = "+ obj[i]+"\n";
            } catch(e) {
                str += i+" = ERROR READ!!!\n";
            }
        }
    }
    document.getElementById("txt").value = str;
    document.getElementById("txt1").value = str1;
    document.getElementById("txt2").value = str2;
}
</script>
<p>
<textarea id=txt cols=45 rows=28></textarea>&nbsp;&nbsp;&nbsp;
<textarea id=txt2 cols=30 rows=28></textarea>&nbsp;&nbsp;&nbsp;
<textarea id=txt1 cols=30 rows=28></textarea>

и вызывай функцию со ссылкой на интересующий тебя объект, например вот так:
Код
showProperties(document);
showProperties(window);
showProperties(document.body);
showProperties(document.getElementById("footer"));

Автор: Romiz 30.9.2006, 13:39
GoodBoy,  спасибо огромно-о-о-е!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)