Плавный переход по нажатию на DIV?
Привет всем. Можно ли сделать плавный переход к якорю по нажатию на блок div. Просо переход получается, но нужно плавно чтобы работал. Можно ли такое сделать?
<div onClick="window.location='#anchor'"</div> |
|
Ну это по нажатию на ссылку. А я спрашиваю по нажатию на блок div
|
Цитата:
|
Понятно что и в африке :) а можно ли сделать так? :)
|
Можно. По клику надо вычислить offset top якоря и прокрутить это расстояние минус высоту окна(window)
|
А можно пример? Я пока только начинаю изучать javascript
|
на jquery все достаточно просто:
var offset = $('#myAnchor').offset().top; $('body').scrollTop(offset ); Это без плавного перехода, который можно осуществить используя метод animate (доку почитаешь). На чистом js придется попариться с циклами. А вообще примеры в гугле ищи, таких там вагон |
<div class="product" onClick="window.location='#anchorsklad'"></div> <script> var offset = $('#anchorsklad').offset().top; $('body').scrollTop(offset ).animate({scrollTop: destination}, 1100); </script> Делаю так, но переход осуществляется мгновенно. Что не так делаю? |
Цитата:
1 откуда взялось destination? 2 ты сначала применяешь метод мгновенного скролирования, а потом его же через animate, но так как ты уже мгновенно прокрутился то эффекта не видишь. Вопрос: зачем тут это .scrollTop(offset ) если ты animate применяешь? |
Исправил на такой код. На другом форуме нашел такой же код, но почему-то переход осуществляется при обновлении. А при нажатии на div опять мгновенный переход
var peremscroll=$('#anchorsklad').offset().top; $('body').animate({scrollTop: peremscroll}, 1100); |
Поди по ссылке-якорю тыкаешь?
метод .preventDefault() чтоб отменить стандартное действие |
Плавный скроллинг страницы
Но тут с помощью jQuery |
это по нажатию на span. Мне нужно по нажатию на DIV
|
Часовой пояс GMT +3, время: 18:30. |