Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   событие остановки скрола (https://javascript.ru/forum/dom-window/45104-sobytie-ostanovki-skrola.html)

imediasun1 14.02.2014 17:02

событие остановки скрола
 
Здравствуйте надо проявить блок header только через 3сек после того как остановился скролл, если скрол вновь запустится убрать блок header?
Этот код не работает
window.onscroll=function(){ // тут мог накосячить, не помню название события...
	if (timer) {
	cleatTimeout(timer);
	 };
	 timer=setTimeout(stopscroll, 100);
	 
	};
stopscroll=function() {
	 timer= false;
	 //дальше выполняете всё, что нужно
	 $('#header').animate({
					   'opacity':'1'},{
                           duration:300,
                           }).clearQueue();
};

danik.js 14.02.2014 17:11

Все правильно, только нужно чуть выше объявить переменную timer.
Ну и перед stopscroll потерялось ключевое слово var (хотя это не обязательно).

И еще, раз уж подключена jQuery, то лучше вешать обработчик через нее:
$(window).scroll(function() {...});


Ну и 3 секунды - это 3000 ms, а не 100.

Цитата:

Сообщение от imediasun1
убрать блок header

$('#header').hide();

ruslan_mart 14.02.2014 17:15

var scrollTmp;
window.onscroll = function() {
	clearTimeout(scrollTmp);
	scrollTmp = setTimeout(onScrollStop, 3E3);
}
      
function onScrollStop() {
	alert(true);
}


P.S.: danik.js, к 3E3 не придираться. :D

imediasun1 14.02.2014 17:31

Так не работает
var timer; 
	$(window).onscroll=function(){ 
	if (timer) {
	cleatTimeout(timer);
	 };
	 timer=setTimeout(stopscroll, 300);
	 
	};
stopscroll=function() {
	 timer= false;
	 //дальше выполняете всё, что нужно
	 $('#header').animate({
					   'opacity':'1'},{
                           duration:300,
                           }).clearQueue();
};

imediasun1 14.02.2014 17:33

Цитата:

Сообщение от Ruslan_xDD (Сообщение 297711)
var scrollTmp;
window.onscroll = function() {
	clearTimeout(scrollTmp);
	scrollTmp = setTimeout(onScrollStop, 3E3);
}
      
function onScrollStop() {
	alert(true);
}


P.S.: danik.js, к 3E3 не придираться. :D

А так появляется header даже без скрола

danik.js 14.02.2014 17:50

Цитата:

Сообщение от imediasun1
$(window).onscroll=function(){

Ну ты гуманоид... Я разве так писал?
Цитата:

Сообщение от Ruslan_xDD
danik.js, к 3E3 не придираться.

Лан, выпендривайся в свое удовольствие )
а что значит scrollTmp?

ruslan_mart 14.02.2014 18:16

Цитата:

Сообщение от danik.js
а что значит scrollTmp?

Как-будто ты не знаешь. :)
Индификатор timeout'а записывается в него.

Цитата:

Сообщение от imediasun1
А так появляется header даже без скрола

Может всё-таки стоит начать читать учебник или смотреть какие-нибудь видеокурсы для чайников?

рони 14.02.2014 18:26

Цитата:

Сообщение от Ruslan_xDD
Может всё-таки стоит начать читать учебник или смотреть какие-нибудь видеокурсы для чайников?

это видимо невозможно в данном случае :cray:

danik.js 14.02.2014 18:29

Цитата:

Сообщение от Ruslan_xDD
Как-будто ты не знаешь.

Что-то типа "временный скролл", хотя не, это если tmpScroll. ХЗ, сдаюсь, тут здравый смысл бессилен ))

ruslan_mart 14.02.2014 18:31

danik.js, ахаха, я так и знал что ты не сможешь не заметить, а то ведь 3E3 мало было. :D


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