Как проскроллить вниз ровно на высоту экрана?
Доброе время суток.
Нашел скрипт на 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, время: 15:27. |