Управление прокруткой с помощью JavaScriptЕсть такое полезное средство в JavaScript... Сегодня мы и поговорим о том, как им пользововаться, да обсудим некоторые способы его практического использования. Бывает, что иногда стандартная виндозная полоса прокрутки портит внешний вид страницы (если, например, это презентационный насыщеный графикой сайт). В этом случае можно создать альтернативную прокрутку с помощью несложного JavaScript-скрипта. Однако учтите, что удобней, чем стандартная, она вряд ли будет (хотя, кто знает...), но красивей — это уж наверняка! Если вас это устраивает, приступим. Во-первых... Функции управления прокруткой
Их есть у нас две: <a href="javascript:window.scrollTo(0,0);">наверх</a> Вот вам, кстати уже и первый пример практического использования. Также вызов можно помещать в функции и обращаться к объектам при помощи имён (ну, как обычно): // прокрутка фрейма с именем 'main' на 100 пунктов: document.frames['main'].scrollBy(0,100); // прокрутка родительского окна на начало: window.parent.scrollTo(0,0); Практическое применениеИтак, теперь небольшой пример практического использования сегодняшних знаний. Создадим удобное окошко для просмотра какой-нибуть информации с применением альтернативной прокрутки. Во-первых, создадим само окно на основе iframe. Для него средствами стандартного HTML надо будет убрать полосы прокрутки, рамку (чтобы при необходимости создать свою), а также установить размеры самого окна: <iframe width=200 height=120 scrolling="no" frameborder="no" src="YOURPAGE.HTML" id="textw"></iframe> А теперь — скриптовая часть. Опредилим две функции, для прокрутки, собственно, вверх и вниз. Параметром ей будем передавать количество пикселей для прокручивания:
function scrollUp(s)
{
document.frames['textw'].scrollBy(0,-s);
}
function scrollDown(s)
{
document.frames['textw'].scrollBy(0,s);
}
Свойство можно назначить на события, скажем, наведения и убирания курсора мыши на изображении. Вот так, например:
<img src="down.gif"
onmouseover="t=setInterval('scrollDown(1);',30);"
onmouseout="clearInterval(t);">
Таким образом получится, что при наведении курсора нарисованную вами на стрелку “вниз”, страница в окошке будет периодически прокручиваться на один пиксель вниз с интервалом в 30 мс. Для настройки скорости, эти параметры можно менять. Также можно вынести несколько стрелок с разными скоростями для регулирования скорости прокрутки самим пользователем. Вообщем, сама навороченность устройства ограничена только вашей фантазией... Вот что получилось у меня (подвигайте курсор вдоль зелёной стрелки):
Вы, конечно же, сможете сделать и лучше, например вынести ещё информацию о текущем состоянии прокрутки (в виде бегунка, как все привыкли, или как-нибуть по-другому)... Но для этого надо будет вводить дополнительную переменную состояния, и увеличивать её (или уменьшать) при каждом проходе функции скроллинга...
В общем, дерзайте, удачи в скриптовании,
10.08.2003 Сергей Василенко (mickron),mysitez.km.ua, serg_w@svitonline.com |