Скроллинг и разбиение страницы
Доброе время суток! Увидел на одном сайте красивый скролинг от одного, наверное, блока к другому (Не сочтите за рекламу, увидел здесь)
Попытался реализовать свою грубую, корявую версию: function heigth_inc() { var container = document.getElementById('container'); var container_second = document.getElementById('container_second'); container.style.height = document.body.clientHeight - 18 +'px'; container_second.style.height = document.body.clientHeight - 18 +'px'; } var i_scroll = 0; var pause = 2; var step = 2; var scrollheight = document.body.clientHeight; function scrollwindow() { window.scroll(0,i_scroll) i_scroll+= step; if (i_scroll >= scrollheight){ return; } var timer = setTimeout("scrollwindow()",pause) } window.onload=scrollwindow; </script> <body onload='heigth_inc()' style='background-color: #000000;'> <div id="container" style="border: 1px solid #000; background-color: #000000; color: #FFFFFF; width: 100%;"> test <br> <button onclick="scrollwindow()">Скроллинг</button> </div> <div id="container_second" style="border: 1px solid #000; background-color: #FFFFFF; color: #000000; width: 100%;"> test2 </div> </body> Естественно, вышло коряво :D Сам я новичок в этом. В общем, был бы крайне благодарен за подсказки\помощь в реализации подобного скролинга или может кто-то встречал уже готовые реализации такого... Еще, возможно не совсем по теме, но хотелось бы узнать подробней о таком разбиении страницы на 2 блока а-ля 2 странички отдельные. Изначально, я подумал, что это 2 div блока, собственно так и пытался писать. Пробовал искать в поисковике подобное, но так и не нашёл, возможно формулирую не верные запросы |
если scrollTop ниже высоты первого элемента то scrollTo ко второму и наоборот
|
Цитата:
|
не совсем верное условие If
Возник вопрос:
Пытаюсь сделать, как написали выше, применяя ScrollTop и ScrollTo, но не совсем получается из-за условия if. После того, как меня перекидывает в нужный мне блок, я не могу вернуться склором обратно к первому (верхнему) блоку, тк мешает условие, что если СкролТоп ниже, чем высота элемента... Собственно, как тут надо правильно делать условие? <html> <head> <title>Prototype</title> <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script> <script type='text/javascript' src='jquery.scrollTo-1.4.3.1.js'></script> <script> function heigth_inc(){ var container = document.getElementById('container'); var spacer = document.getElementById('spacer'); var container_second = document.getElementById('container_second'); //alert(document.body.clientHeight); container.style.height = document.body.clientHeight +'px'; spacer.style.height = 600 +'px'; container_second.style.height = document.body.clientHeight +'px'; } $(document).ready(function(){ //функция для доп эффекта $.easing.elasout = function(x, t, b, c, d) { var s=1.70158;var p=0;var a=c; if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (a < Math.abs(c)) { a=c; var s=p/4; } else var s = p/(2*Math.PI) * Math.asin (c/a); return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; }; $('a.one').click(function(){ var idscroll = $(this).attr('href'); $.scrollTo(idscroll, 1000, {easing:'elasout'}); return false; }); $(window).scroll(function(){ //alert("Вы прокрутили содержимое данного окна."); if ($(document).scrollTop() > container.offsetHeight){ var idscroll = document.getElementById('container_second'); $.scrollTo(idscroll, 1000, {easing:'elasout'}); //alert($(document).scrollTop() + ' ' + container.offsetHeight) } /*if ($(document).scrollTop() < container.offsetHeight){ var idscroll = document.getElementById('container'); $.scrollTo(idscroll, 1000, {easing:'elasout'}); //alert($(document).scrollTop() + ' ' + container.offsetHeight) }*/ }); }); </script> <style> .nav ul { padding-left: 0; } .nav ul li { list-style: none; } .nav ul li a{ margin: 3px 0; width: 100px; background: #f3f3f3; display: block; padding: 5px 10px; text-decoration: none; color: #666; } .nav ul li a:hover{ background: #f7f7f7; text-decoration: none; color: #999; } </style> </head> <body onload='heigth_inc()' style='background-color: #000000;'> <div class="nav" style="position:fixed; left: 20px; top: 10px;"> <h3>Пример</h3> <ul> <li><a class="one" href="#container">Верх</a></li> <li><a class="one" href="#container_second">Низ</a></li> </ul> </div> <div id="container" class='selector' style="border: 1px solid #000; background-color: #000000; color: #FFFFFF; width: 100%;"> test <br> </div> <div id="spacer" style="border: 1px solid #000; background-color: #000000; color: #FFFFFF; width: 100%;"> spacer <br> </div> <div id="container_second" style="border: 1px solid #000; background-color: #FFFFFF; color: #000000; width: 100%;"> test2 </div> </body> </html> |
Часовой пояс GMT +3, время: 21:23. |