Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2019, 08:05
Новичок на форуме
Отправить личное сообщение для a.r.akhmadullin Посмотреть профиль Найти все сообщения от a.r.akhmadullin
 
Регистрация: 02.04.2019
Сообщений: 1

Плавный переход к якорю внутри большого DIV блока.
Здравствуйте!

Возникла проблема с точным переходом по якорю с использованием jQuery. Если я проматываю до самого верха и нажимаю ссылку "ВНИЗ", то якорь оказывается где-то выше верхней границы, если немного вниз проматываю, так что ссылка "ВНИЗ" оказывается вверху и нажимаю на нее, то якорь оказывается ниже верхней границы. Подскажите пожалуйста как изменить код чтобы якорь всегда на верхней границе оказывался? Код который я использую:
<html>
	<head>
		<title>testscrolling</title>
		<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
		<script type="text/javascript">
			$(function(){
				$('a[href^="#"]').on('click', function(event) {
					event.preventDefault();
					var sc = $(this).attr("href"),
						//dn = $(sc).offset().top;
						dn = $(sc).position().top;
					$('div').animate({scrollTop: dn}, 1000);
				});
			});
		</script>
	</head>
	<body style='overflow-y: none;'>
		<div style='height: 100%;margin: 10px auto;overflow-y: none;'>
			<div style='height: 20%; width: 100%; background: #ffff00'>
			
			</div>
			<div style='background: #00ffff; overflow-y: scroll; height: 60%'>
				<a id="up"></a>
				<?php for($i = 0; $i < 10; $i++) echo "<p>test</p>"?>
				<p><a href="#down" style='background: #FF0000'>ВНИЗ</a></p>
					<?php for($i = 0; $i < 890; $i++) echo "<p>test</p>"?>
				<a id="down"></a>
				<p><a href="#up" style='background: #FF0000'>ВВЕРХ</a></p>
				<?php for($i = 0; $i < 100; $i++) echo "<p>test</p>"?>
			</div>
			<div style='height: 20%; width: 100%; background: #ffff00'>
			
			</div>
		</div>
	</body>
</html>

Последний раз редактировалось a.r.akhmadullin, 03.04.2019 в 06:38.
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2019, 09:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

a.r.akhmadullin,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование div как $(document) - чтобы коды работали только внутри него. BUBU Общие вопросы Javascript 0 23.02.2019 04:05
стрелки вниз, верх при раздвижение блоков dima018 Элементы интерфейса 8 12.02.2018 21:29
Движение фотографии внутри блока Evgeniya Events/DOM/Window 1 25.02.2013 21:32
fade маленького div внутри большого div kenwo0d jQuery 17 19.05.2012 16:27
Скрытие, показ определённого div блока. Flashton Events/DOM/Window 5 11.04.2010 23:44