Чертёж десятый, «половина» последняя: JS, ещё немногоСегодня попробуем соединить обе цели применения JS — «красивость» и функциональность, создав на Клавиной страничке «плавающую» кнопку, которая всегда будет находиться в правом нижнем углу окна браузера и при щелчке по ней прокручивать страничку вверх, к её началу.
<DIV id="kn" style="position:absolute; width:100; height:40; font-size:150%;"
class="panelka"
onClick="scrollBy(0,-document.body.scrollTop)">
Вверх
</DIV>
<BODY onScroll="menu()" onResize="menu()" onLoad="menu()">
<SCRIPT type="text/javascript">
function menu()
{ kn.style.top=document.body.scrollTop+
document.body.clientHeight-60;
kn.style.left=document.body.scrollLeft+
document.body.clientWidth-110;
}
</SCRIPT>
![]()
События onScroll и onResize возникают, соответственно, при прокручивании документа и при изменении размера окна браузера. И в том, и в другом случае, а также при загрузке документа запускается функция menu(). В этой функции у объекта kn изменяются координаты, причём задаются они не относительно документа, а относительно той его части, которая видна в окне браузера. Дают нам такую возможность свойства scrollTop и scrollLeft объекта body, которые содержат текущие координаты левого верхнего угла той части документа, который виден в окне. К этим величинам мы добавляем ширину clientWidth и высоту clientHeight окна браузера. А вот зачем нужны числа 60 и 110, от чего они зависят и что зависит от них, ты подумаешь и ответишь сам. Ну и, наконец, метод scrollBy(0,-document.body.scrollTop) вызывает прокрутку документа в окне браузера вправо (первый аргумент) и вниз (второй аргумент метода).
![]() ![]() |