Здравствуйте.
Бьюсь уже несколько дней, не могу понять, пожет вы, люди добрые натолкнете на мысл умную ...
Пытаюсь реализовать скроллинг элементов на странице сверху вниз и обратно. Есть код
<script type="text/javascript">
window.onload = function()
{
allLinks = document.getElementsByTagName('A'); // ищем все ссылки в документе
for( var i = 0; i < allLinks.length; i ++ )
{
var links = allLinks[i];
if( (links.href && links.href.indexOf('/')) || (links.pathname == location.pathname) )
{
links.onclick = getClick; // если ссылка существует и содержит / и ведет никуда не ведет - добавляем событие
}
}
}
function getScroll()
{
window.scrollBy( 0, 20 ); // прокручиваем страницу вниз на 20px
}
function getClick(elem) // ф-я получает рассположение элемента до верха страницы
{
var getHref = this.getAttribute('href').substring(1);
var nameLinks = document.getElementsByTagName('A');
for( var i = 0; i < nameLinks.length; i ++ )
{
var nameLink = nameLinks[i]
if( nameLink.name && nameLink.name == getHref )
{
seachLink = nameLink.offsetTop; // получаем позицию элемента
}
}
var timer = setInterval('getScroll()', 20);
}
</script>
<a href="/a1">Click 1</a>
<a href="/a2">Click 2</a>
<a href="/a3">Click 3</a>
<a href="/a4">Click 4</a>
<div>
<a name="a1">Section 1</a>
</div>
<div>
<a name="a2">Section 2</a>
</div>
<div>
<a name="a3">Section 3</a>
</div>
<div>
<a name="a4">Section 4</a>
</div>
Вопрос в следующем: я получаю позицию элемента, до которого мне нужно прокрутить, но как мне останавливать прокрутку при достижении этого элемента ? Когда запускать clearInterval ? Допустим я знаю, что мне нужно прокрутить страницу на 300px , как правильно нужно написать, чтобы при достижении прокрутки 300px скроллинг останавливался, а не прокручивал страницу дальше, как в моем случае?