Как проскроллить вниз ровно на высоту экрана?
Доброе время суток.
Нашел скрипт на jQerey, но он срабатывает один раз почему-то? Вот сам скрипт.
$(document).ready ( function ( ) {
$('#nav_down').fadeIn('slow');
var win = $(window).height () ;
$( '#nav_down' ).click ( function ( ) {
$( 'body,html' ).animate ( {
scrollTop: win
} , 800 ) ;
return false ;
} ) ;
} ) ;
<div class="nav_down" id="nav_down"></div> При нажатии кнопки только один раз уходит вниз, при втором нажатие ни чего не происходит. я понимаю что надо писать вот так: scrollTop: '+=win' но, так не работает. Помогите разобраться со скриптом. |
Цитата:
|
Цитата:
|
Цитата:
Ну вот тебе еще одна... |
я открыл вашу ссылку там написано.
"Переменную win объявляйте после клика" Хорошо написал так
$(document).ready ( function ( ) {
$('#nav_up').fadeIn('slow');
$('#nav_down').fadeIn('slow');
$( '#nav_down' ).click ( function ( ) {
var win = $(window).height();
$( 'body,html' ).animate ( {scrollTop: '+=win'} , 800 ) ;
return false ;
} ) ;
} ) ;
Все равно не работает при втором нажатии |
Цитата:
|
Цитата:
я в курсе что написал ошибку. но как сделать? |
Цитата:
Нужно учитывать так же, что сам пользователь может скрольнуть вниз или вверх, т.ч. и текущее положение придется анализировать на предмет "на какой странице я нахожусь" и "на какую мне скролить"... |
<div class="nav_down" id="nav_down" style='position:fixed; left:100px;background-color:silver'>скролл вниз</div>
<div id = "container"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
$(document).ready ( function ( ) {
$('#nav_down').fadeIn('slow');
var win = $(window).height (),
count = 1,
content = "";
for (var i=1;i<300;i++) content += i.toString() + "<br>";
$('#container').html(content);
$( '#nav_down' ).click ( function ( ) {
$( 'body,html' ).animate ( {
scrollTop: win * count
} , 800 ) ;
count++;
return false ;
} ) ;
} ) ;
</script>
|
Dilettante_Pro, если самому скрольнуть колесом вниз, а потом нажать на "скролл вниз" - получается скролл вверх. ;)
|
ksa,
Это же не полноценная программа, а только демонстрация принципа... Кнопки "скролл вверх" тоже нет... и еще много чего |
Большое спасибо! Надеюсь дальше сам попытаюсь до работать. Если не смогу то, напишу.
|
Цитата:
|
Это я уже понял!
|
Цитата:
$(document).ready ( function ( ) {
$('#nav_up').fadeIn('slow');
$('#nav_down').fadeIn('slow');
$( '#nav_down' ).click ( function ( ) {
var win = $(window).scrollTop() + $(window).innerHeight();
$( 'body,html' ).animate ({scrollTop: win } , 800 ) ;
} ) ;
$('#nav_up').click( function () {
var win = $(window).scrollTop() - $(window).innerHeight();
$('html, body').animate({scrollTop: win }, 800);
});
} ) ;
По вашему мнению какие минусы скрипта? |
Цитата:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<div class="nav_down" id="nav_down" style='position:fixed; left:100px;background-color:silver'>скролл вниз</div>
<div id = "container"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
$(document).ready ( function ( ) {
$('#nav_down').fadeIn('slow');
var win = $(window).height (),
count = 1,
content = "";
for (var i=1;i<300;i++) content += i.toString() + "<br>";
$('#container').html(content);
$( '#nav_down' ).click ( function ( ) {
$( 'body,html' ).animate ( {
scrollTop: win * count
}, 800 ) ;
count++;
return false ;
} ) ;
}) ;
</script>
</body>
</html>
У меня на странице (во весь экран) 56 внизу... Проскролил руками до 100 внизу... Нажал на кнопку - внизу 112 и соточка моя ниже середины. А пойдет или нет - это пусть "конечный" исполнитель решает. Х/з чего в итоге нужно. :) |
вроде нормально срабатывает
|
Цитата:
|
| Часовой пояс GMT +3, время: 00:29. |