Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как указать в jQuery, что scrollTop "начнет уменьшаться"? (https://javascript.ru/forum/misc/68877-kak-ukazat-v-jquery-chto-scrolltop-nachnet-umenshatsya.html)

рони 16.05.2017 22:10

Булат Азат улы,
не смотря на ваши примеры в контакте и описания, я не понимаю что вы хотите сделать, поэтому не могу помочь.
посмотрите плагин, предложенный выше, может быть он решит вашу задачу.

Булат Азат улы 17.05.2017 20:40

Наконец, я смог разобраться с тем плагином, которую мне подсказали. Спасибо.

Булат Азат улы 17.05.2017 21:27

рони,
Но все равно, тот плагин оказался для меня не удобным. Файл скрипта весит целых 8 кб. Да ещё и сколько лишних блоков пришлось создать - нужный блок вписать в 2 внешних блока, и так все!!!

Я напишу свой полный код, который на данный момент сделал, и вы не могли бы подправить меня в "правильный путь"?
$(window).scroll(function(){
	var WinH = $(window).height(); //получаю высоту окна
	var UnBitOz = $("#unBit").outerHeight(true); //получаю длину блока, которую я буду фиксировать
	var UnBuryn = $(window).width() / 2 + 345; //это я вычисляю положение блока по вертикали (ведь при position:fixed блок отрывается со своего места и уходит в самый левый край)
	
	if ($(window).scrollTop() >= UnBitOz + 130 - WinH) $("#unBit").css({"position":"fixed", "bottom":"0", "left":UnBuryn}); //если scroll-ом блок дойдёт до самого своего низа, то он примет значение position:fixed. (130 - это верхняя шапка).
// Вот. До этого места всё работает. А дальше то, что вы мне посоветовали (что тоже прекрасно работает):
	
	var top = $(window).scrollTop();
	$(window).scroll(function() {
		if($(window).scrollTop() < top) {
			$("#unBit").css({"bottom":"222"}); // это когда прокручиваешь наверх (т.е. значение scrollTop начинает уменьшаться, этот блок тоже со всеми должен уходить вниз, до того, как полностью покажется верхняя сторона, и принять значение top:0, или остановить изменение bottom.)
		};
		top = $(window).scrollTop();
	});
	
});


Ну, в общем, то же самое, что и вы мне дали, только там мусора и глюков очень много.

рони 17.05.2017 22:11

Булат Азат улы,
может чем поможет
http://javascript.ru/forum/dom-windo...d-futerom.html

Булат Азат улы 18.05.2017 10:29

рони,
Спасибо. Попробую воспользоваться примером.
А не могли бы объяснить, что это за код:
0 < b ? a.css({
    background: "red",
    top: c.top
}) : a.css({
    background: "green",
    top: c.top + b
});

Что вообще первая строка объясняет? Что там за знак вопроса? И на четвертой строке, что за двоеточие?

Nexus 18.05.2017 10:39

Цитата:

Сообщение от Булат Азат улы
Что вообще первая строка объясняет? Что там за знак вопроса? И на четвертой строке, что за двоеточие?

https://learn.javascript.ru/ifelse#...ый-знак

Это
0 < b ? a.css({
    background: "red",
    top: c.top
}) : a.css({
    background: "green",
    top: c.top + b
});

Тоже самое что и
if(0<b){
	a.css({
		background: "red",
		top: c.top
	});
}else{
	a.css({
		background: "green",
		top: c.top + b
	});
};

Булат Азат улы 18.05.2017 10:48

Nexus,
Понял, спасибо.


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