Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jquery scroll (https://javascript.ru/forum/misc/15724-jquery-scroll.html)

qwermjk 10.03.2011 20:48

jquery scroll
 
Подскажите как сделать чтобы блок передвигался вместе со scroll???

poorking 10.03.2011 20:49

position: fixed

qwermjk 10.03.2011 20:51

ААА спасибо друг, я ппц позабыл про это =))
Это как раз моё решение =)
НУ раз создал эту тему давай разберём это на джаве =)
$(window).scroll(function () {
 $("#eOK").css('bottom','0px');
});

Вариант что то не робит =)

poorking 10.03.2011 21:07

Я jQuery библиотеку не знаю, но похоже что ваш код устанавливает объекту с id="eOK" свойство css bottom: 0, а надо его изменять относительно изменения длины скролла того, чего вы скроллите, при скролле объекта window(а надо body (не уверен)). За слова не отвечаю, jQuery не умею. Но советую сделать это средствами css, думаю, это более светлые мысли, чем выполнять javascipt код при каждом шаге изменения положения скроллера.

qwermjk 10.03.2011 21:27

Ну да, я с вами согласен, но есть задачи которые на css будет решить просто нельзя, и охото рассмотреть как это сделать на Javascript =)
Вот мне бы узнать как на джаве определяется этот сдвиг скролла, и я бы уже дописал =))
Я где-то в материале javascript.ru видел примеры со скроллом, но уже забыл где и искать очень долго, вот если бы ктонить подсказал где такое, было бы очень здорово =)
Я свой пример реализации на css уже сделал, получилось прикольно =))
Делал сообщение об ошибка при неправельно заполненной форме, типо если что то введено не правельно то в нижнем правом угру выводилось сообщение что типо что то не так =))

poorking 11.03.2011 00:09

<!DOCTYPE html>
<script type ="text/javascript">
	window.onload = function(){	
		var so_strange = document.getElementById("strange");
		var body = document.documentElement || document.body;
		
		var x0 = 50, y0 = 50;
		
		so_strange.style.left = x0 + body.scrollLeft + "px";
		so_strange.style.top = y0 + body.scrollTop + "px";
		
		window.onscroll = function(){
			so_strange.style.left = (x0 + body.scrollLeft) + "px";
			so_strange.style.top = (y0 + body.scrollTop) + "px";
		}
	}


</script>
<style>
	body{
		width:5000px;
		height: 5000px;
	}
	#strange{
		position: absolute;
		width: 200px;
		height: 100px;
		background-color: #fedcbd;
	}
	#normal{
		position: fixed;
		top: 200px;
		left: 50px;
		width: 200px;
		height: 100px;
		background-color: #abcdef;
	}
</style>

<div id="strange">With JS</div>
<div id="normal">CSS</div>

С помощью js:
- дергается (не красиво)
- не кроссбраузерно, не работает в Хроме и Сафари, там какая то проблема с body + scroll) => следовательно надо искать выход (возможно в jQuery решено, не знаю)

С помощью css всего несколько строк и не трясется когда резко дергаешь скролл

Зачем? Возможно ради этого и придумали position: fixed

По поводу хрома и сафари не знаю, может я что-то не так делаю, но видел несколько подобных проблем уже, там предлагали немного "припудрить" body в css


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