Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Плавный переход к якорю при скролле страницы (https://javascript.ru/forum/jquery/69647-plavnyjj-perekhod-k-yakoryu-pri-skrolle-stranicy.html)

Argeares 09.07.2017 06:11

Плавный переход к якорю при скролле страницы
 
Здравствуйте. Никак не получается реализовать плавный переход к якорю при достижении определённой позиции на странице. Пробую реализовать через waypoint, но я не силён в js и поэтому не могу додуматься как это сделать. Помогите, пожалуйста.

<header>
<br>
<br>
<br>
<br>
<br>
</header>

<section class="delivered" id="to-delivered">
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</section>


$('.delivered').waypoint(function () {
		$('.delivered').(function(e){
			$('html,body').stop().animate({ scrollTop: $('#to-delivered').offset().top }, 600);
			e.preventDefault();
		},{
			offset: "70%"
		});

рони 09.07.2017 06:36

Argeares,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
       header{
         background-color: hsla(120, 100%, 20%, 1);
         height: 1500px;
       }
       .delivered{
            background-color: hsla(0, 100%, 50%, 1);
            text-align: center;
             font-size: 48px;
       }
       p{
         margin: 0;
         background-color: hsla(120, 100%, 20%, 1);
         height: 1500px;
       }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.js"></script>
  <script>
$(function() {
    $(".delivered").waypoint(function() {
        $("html,body").stop().animate({
            scrollTop: $("#to-delivered").offset().top
        }, 600)
    }, {
        offset: "70%"
    })
});
  </script>
</head>

<body>
<header>
<br>
<br>
<br>
<br>
<br>
</header>

<section class="delivered" id="to-delivered">
<br>
<br>
<br>
<br>section
<br>
<br>
<br>
</section>

<p></p>
</body>
</html>

Argeares 09.07.2017 06:42

Да, то что нужно. Спасибо. Только такой вопрос ещё, а можно как нибудь сделать что бы и в верхний контент можно было попасть? Например что бы этот waypoint один раз только срабатывал

рони 09.07.2017 07:09

Argeares,
$(function() {
  var waypoint =  $(".delivered").waypoint(function() {
        $("html,body").stop().animate({
            scrollTop: $("#to-delivered").offset().top
        }, 600);
       waypoint[0].enabled = false
    }, {
        offset: "70%"


    })
});

Argeares 09.07.2017 07:21

Так всё равно срабатывает постоянно(

рони 09.07.2017 07:25

Цитата:

Сообщение от Argeares
Так всё равно срабатывает постоянно(

:blink:
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
       header{
         background-color: hsla(120, 100%, 20%, 1);
         height: 1500px;
       }
       .delivered{
            background-color: hsla(0, 100%, 50%, 1);
            text-align: center;
             font-size: 48px;
       }
       p{
         margin: 0;
         background-color: hsla(120, 100%, 20%, 1);
         height: 1500px;
       }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.js"></script>
  <script>
$(function() {
  var waypoint =  $(".delivered").waypoint(function() {
        $("html,body").stop().animate({
            scrollTop: $("#to-delivered").offset().top
        }, 600);
       waypoint[0].enabled = false ;
    }, {
        offset: "70%"


    })

    $('button.enable').on('click', function() {
  waypoint[0].enabled = true;
})

});
  </script>
</head>

<body>
<header>
<br>
<br>
<br>
<br>
<br>
</header>

<section class="delivered" id="to-delivered">
<br>
<br>
<br>
<br>section
<br>
<br>
<br>
</section>

<p><button class="enable">Enable </button></p>
</body>
</html>

Argeares 09.07.2017 07:40

atfdev.vacau.com
вот здесь, предпоследняя секция, код такой же вставил, а оно почему то срабатывает постоянно(
в чем может быть дело?

Argeares 09.07.2017 07:59

Спасибо вам огромное. Разобрался. Дело было в том что у меня JQuery второй ветки был, а нужно первой)


Часовой пояс GMT +3, время: 13:28.