Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.05.2011, 16:05
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Скроллинг на javascript
Здравствуйте.
Бьюсь уже несколько дней, не могу понять, пожет вы, люди добрые натолкнете на мысл умную ...
Пытаюсь реализовать скроллинг элементов на странице сверху вниз и обратно. Есть код
<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 скроллинг останавливался, а не прокручивал страницу дальше, как в моем случае?
Ответить с цитированием
  #2 (permalink)  
Старый 06.05.2011, 19:57
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Что никто не знает ответ? Подобное кто-то сам реализовывал или все готовые заготовки используют?
Ответить с цитированием
  #3 (permalink)  
Старый 08.05.2011, 00:32
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

*!*var max = 300;*/!*

function getScroll()
{
       *!*if(  window.pageYOffset > max ) return;*/!*

	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);	
}
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2011, 12:04
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Сообщение от melky Посмотреть сообщение
*!*var max = 300;*/!*

function getScroll()
{
       *!*if(  window.pageYOffset > max ) return;*/!*

	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);	
}
Спасибо огромное !
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Книга] Stoyan Stefanov, Javascript Patterns Dmitry A. Soshnikov Учебные материалы 20 13.08.2013 11:37
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
JavaScript разработчик (Яндекс, Москва) antonova Работа 2 08.07.2010 19:44
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24