Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Прокрутили до блока показали алерт)) (https://javascript.ru/forum/dom-window/55621-prokrutili-do-bloka-pokazali-alert.html)

Trues 07.05.2015 10:34

Прокрутили до блока показали алерт))
 
Ребят все не могу допереть как сделать есть некий блок

<div class='do-menya'></div>

и когда мы скролим до него нужно что б что то происходило ну допустим появлялся алерт

$(document).scroll(function(){

});

ksa 07.05.2015 10:50

Цитата:

Сообщение от Trues
все не могу допереть как сделать

http://javascript.ru/forum/dom-windo...a-ehkrane.html

ksa 07.05.2015 10:55

Тут пошагово все расписано
http://habrahabr.ru/post/240083/

Trues 07.05.2015 11:56

Спасибо почитал думаю сделаю)))

Trues 07.05.2015 13:13

Ребят написал след образом но почему то не выдает нечего(((

$(document).scroll(function(){
	if(parseInt($(this).scrollTop()) == parseInt($('.scroll-bot').offset().top))
		{
		alert('Привет');
		}
});


т.е. при прокрутке страницы мы смотрим прокрутили сколько мы прокрутили $(this).scrollTop() и спрашиваем расстояние которое мы прокрутили и расстояние от вверха страницы до блока с классом scroll-bot одинаково или нет. и если одинаково ты мы даем алерт

но я прохожу мимо блока дальше вниз и он не показывает алер. что я понял не правильно? и как это можно исправить?

ksa 07.05.2015 13:16

Цитата:

Сообщение от Trues
но почему то не выдает нечего

Для начала просто посмотри/выведи что и с чем ты сравниваешь...

Trues 07.05.2015 13:20

я выводил расстояние до блока он дал мне 2005. и дальше много цифр. дальше я выводил сколько я проскролил ну и он мне показывал сначала меньше этого числа далее больше. когда я делал так

if(parseInt($(this).scrollTop()) == 2005)
			{
			alert('Привет');
			}


то он выводил мне аллерт

ksa 07.05.2015 13:29

Цитата:

Сообщение от Trues
я выводил

Т.е. ты в состоянии понять почему условие у тебя не принимает значение true?

ksa 07.05.2015 13:41

Trues, вот тебе иллюстрация происходящего...

<!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>
<link rel='stylesheet type=text/css href=tmp.css' />
<link rel="stylesheet/less" type="text/css" href="style.less">
<script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.0/less.min.js"></script>
-->
<style type='text/css'>
html,
body {
	height: 2000px;
}
#info {
	position: fixed;
	top: 10px;
	right: 10px;
	width: 100px;
}
.scroll-bot {
	position: absolute;
	top: 1500px;
	left: 100px;
	width: 200px;
	border: 1px solid;
}
</style>
<script type='text/javascript'>
$(function(){
	$(document).scroll(function(){
		var div_top=parseInt($('.scroll-bot').offset().top);
		var scrl_h=parseInt($(this).scrollTop());
		$('#div_top').text(div_top);
		$('#scrl_h').text(scrl_h);
		if(scrl_h == div_top){
			alert('Привет');
		}
	});
});
</script>
</head>
<body>
<div id='info'>
	<p id='scrl_h'></p>
	<p id='div_top'></p>
</div>
<div class='scroll-bot'>scroll-bot</div>
</body>
</html>

Trues 07.05.2015 13:45

$(this).scrollTop() выводил на алертах и он выдавал числа но число 2005 не дал.
в этом загвозка? несолько раз пыьался его получить не вышло.
но почему тогда, когда задаешь в условии конкретно число 2005 он принимает значение true но когда пишешь parseInt($('.scroll-bot').offset().top) (вместо конкретного числа) данного значения он не принимает. ( parseInt прописываю т.к. $('.scroll-bot').offset().top не является целым числом)

Ksa в чем подвох? Если чесно не могу понять((((:help:


Часовой пояс GMT +3, время: 21:40.