поэтому у меня есть страница с фиксированной панелью ссылок на стороне. Я хотел бы прокрутить до различных div. По сути, это всего лишь один длинный веб-сайт, на котором я бы хотел прокрутить список различных элементов, используя боковое меню.
Вот JQuery у меня до сих пор
$(document).ready(function() {
$('#contactlink').click = function() {
$(document).scrollTo('#contact');
}
});
Проблема в том, что он автоматически переходит к контакту div, когда загружается, а затем, когда я нажимаю #contactlink
в меню, он прокручивается обратно вверх.
РЕДАКТИРОВАТЬ: HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- jQuery-->
<script src = "<?php echo base_url() ?>assets/js/jquery.js"></script>
<!-- .js file-->
<script src = "<?php echo base_url() ?>assets/js/pagetwo.js"></script>
<link rel="stylesheet" type="text/css" href="<?php echo base_url()?>assets/css/reset.css" />
<!-- .css for page -->
<link rel="stylesheet" type="text/css" href="<?php echo base_url()?>assets/css/pagetwo.css"/>
<!-- page title-->
<title><!-- Insert Title --></title>
</head>
<body>
<div id="container">
<div id="sidebar">
<ul>
<li><a id = "aboutlink" href="#">auck</a></li>
<li><a id = "peojectslink" href="#">Projects</a></li>
<li><a id = "resumelink" href="#">Resume</a></li>
<li><a id = "contactlink" href="#">Contact</a></li>
</ul>
</div>
<div id="content">
<div class="" id="about">
<p class="header">uck</p>
<p class="info">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="sections"id="projects">
<p class = "header">Projects</p>
<p class="info">Projects</p>
</div>
<div class="sections" id="resume">
<p class = "header">Resume</p>
<p class="info">Resume</p>
</div>
<div class="sections" id="contacts">
<p class = "header">Contact</p>
<p class="info">Contact</p>
</div>
</div>
</div>
</body>
Спасибо за помощь
Ответы:
Во-первых, ваш код не содержит
contact
div, у него естьcontacts
div!В боковой панели у вас есть
contact
в div в нижней части страницы, у вас естьcontacts
. Я удалил финалs
для примера кода. (вы также неправильно написалиprojectslink
идентификатор на боковой панели).Во-вторых, взгляните на некоторые примеры, нажав на справочную страницу jQuery. Вы должны использовать click like,
object.click( function() { // Your code here } );
чтобы привязать обработчик события click к объекту .... Как в моем примере ниже. Кроме того, вы также можете просто вызвать щелчок на объекте, используя его без аргументов, какobject.click()
.В-третьих,
scrollTo
это плагин в jQuery. Я не знаю, установлен ли у вас плагин. Вы не можете использоватьscrollTo()
без плагина. В этом случае функциональность, которую вы хотите, составляет всего 2 строки кода, поэтому я не вижу смысла использовать плагин.Хорошо, теперь к решению.
Код ниже будет прокручиваться до правильного div, если вы нажмете ссылку на боковой панели. Окно должно быть достаточно большим для прокрутки:
Живой пример
(Прокрутите до функции, взятой отсюда )PS: Очевидно, у вас должна быть веская причина, чтобы идти по этому пути, вместо того, чтобы использовать теги привязки
<a href="#gohere">blah</a>
...<a name="gohere">blah title</a>
источник
В
.scrollTo()
jQuery нет метода, но есть.scrollTop()
..scrollTop
ожидает параметр, то есть значение пикселя, к которому должна прокручиваться полоса прокрутки.Пример:
прокрутит окно (если в нем достаточно содержимого).
Таким образом, вы можете получить это желаемое значение с помощью
.offset()
или.position()
.Пример:
Это должно прокрутить
#contact
элемент в поле зрения.Не-jQuery альтернативный метод есть
.scrollIntoView()
. Вы можете вызвать этот метод в любомDOM element
виде:true
указывает на то, что элемент расположен сверху, тогда какfalse
он размещается внизу представления. Хорошая вещь с методом jQuery, вы можете даже использовать егоfx functions
как.animate()
. Таким образом, вы можете плавно прокрутить что-нибудь.Ссылка: .scrollTop () , .position () , .offset ()
источник
можешь попробовать :
источник
Добавьте эту маленькую функцию и используйте ее так:
$('div').scrollTo(500);
источник
Хорошо, ребята, это небольшое решение, но оно отлично работает.
предположим следующий код:
Вы хотите, чтобы при добавлении нового сообщения в «the_div_holder» оно прокручивало свое внутреннее содержимое (div .post) до последнего, такого как чат. Итак, делайте следующее при добавлении нового .post к основному держателю div:
источник
Сначала получите позицию элемента div, до которой вы хотите прокрутить метод jQuery position ().
Пример: var pos = $ ("div"). Position ();
Затем получите y кординаты (высоту) этого элемента с помощью метода .top .
Пример: pos.top;
Затем получите x кординаты этого элемента div с помощью метода .left .
Эти методы происходят из CSS-позиционирования.
Как только мы получим x & y cordinates, мы можем использовать scrollTo () javascript ; метод.
Этот метод прокручивает документ до определенной высоты и ширины.
Он принимает два параметра как x & y cordinates. Синтаксис: window.scrollTo (x, y);
Затем просто передайте x & y cordinates элемента DIV в функцию scrollTo () .
См. Пример ниже ↓ ↓
источник
Не нужно тоже это. Просто добавьте div id в href тега <a>
Просто так.
источник