09.07.2017, 06:11
|
Интересующийся
|
|
Регистрация: 05.01.2017
Сообщений: 19
|
|
Плавный переход к якорю при скролле страницы
Здравствуйте. Никак не получается реализовать плавный переход к якорю при достижении определённой позиции на странице. Пробую реализовать через 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
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
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>
|
|
09.07.2017, 06:42
|
Интересующийся
|
|
Регистрация: 05.01.2017
Сообщений: 19
|
|
Да, то что нужно. Спасибо. Только такой вопрос ещё, а можно как нибудь сделать что бы и в верхний контент можно было попасть? Например что бы этот waypoint один раз только срабатывал
|
|
09.07.2017, 07:09
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Argeares,
$(function() {
var waypoint = $(".delivered").waypoint(function() {
$("html,body").stop().animate({
scrollTop: $("#to-delivered").offset().top
}, 600);
waypoint[0].enabled = false
}, {
offset: "70%"
})
});
|
|
09.07.2017, 07:21
|
Интересующийся
|
|
Регистрация: 05.01.2017
Сообщений: 19
|
|
Так всё равно срабатывает постоянно(
|
|
09.07.2017, 07:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Сообщение от 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() {
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>
|
|
09.07.2017, 07:40
|
Интересующийся
|
|
Регистрация: 05.01.2017
Сообщений: 19
|
|
atfdev.vacau.com
вот здесь, предпоследняя секция, код такой же вставил, а оно почему то срабатывает постоянно(
в чем может быть дело?
|
|
09.07.2017, 07:59
|
Интересующийся
|
|
Регистрация: 05.01.2017
Сообщений: 19
|
|
Спасибо вам огромное. Разобрался. Дело было в том что у меня JQuery второй ветки был, а нужно первой)
|
|
|
|