Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.10.2013, 23:40
Новичок на форуме
Отправить личное сообщение для Equality Посмотреть профиль Найти все сообщения от Equality
 
Регистрация: 30.10.2013
Сообщений: 3

Скроллинг и разбиение страницы
Доброе время суток! Увидел на одном сайте красивый скролинг от одного, наверное, блока к другому (Не сочтите за рекламу, увидел здесь)

Попытался реализовать свою грубую, корявую версию:

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>


Естественно, вышло коряво Сам я новичок в этом. В общем, был бы крайне благодарен за подсказки\помощь в реализации подобного скролинга или может кто-то встречал уже готовые реализации такого...

Еще, возможно не совсем по теме, но хотелось бы узнать подробней о таком разбиении страницы на 2 блока а-ля 2 странички отдельные. Изначально, я подумал, что это 2 div блока, собственно так и пытался писать. Пробовал искать в поисковике подобное, но так и не нашёл, возможно формулирую не верные запросы

Последний раз редактировалось Equality, 30.10.2013 в 23:43.
Ответить с цитированием
  #2 (permalink)  
Старый 30.10.2013, 23:51
Аватар для jsru_
Кандидат Javascript-наук
Отправить личное сообщение для jsru_ Посмотреть профиль Найти все сообщения от jsru_
 
Регистрация: 09.04.2013
Сообщений: 149

если scrollTop ниже высоты первого элемента то scrollTo ко второму и наоборот
Ответить с цитированием
  #3 (permalink)  
Старый 01.11.2013, 23:33
Новичок на форуме
Отправить личное сообщение для Equality Посмотреть профиль Найти все сообщения от Equality
 
Регистрация: 30.10.2013
Сообщений: 3

Сообщение от jsru_ Посмотреть сообщение
если scrollTop ниже высоты первого элемента то scrollTo ко второму и наоборот
Спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 03.11.2013, 05:50
Новичок на форуме
Отправить личное сообщение для Equality Посмотреть профиль Найти все сообщения от Equality
 
Регистрация: 30.10.2013
Сообщений: 3

не совсем верное условие 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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запретить скроллинг страницы ivan2006bip Events/DOM/Window 21 13.07.2016 11:39
скроллинг внутри дива при скроллинге страницы shaltay jQuery 1 11.09.2012 20:30
Скроллинг страницы Semes Javascript под браузер 4 12.09.2011 19:29
Скроллинг элемента страницы Afonin jQuery 5 14.02.2011 13:08
Вычисление высоты страницы. keysi_ Events/DOM/Window 2 03.08.2010 18:03