Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Код с toogleClass (https://javascript.ru/forum/misc/51207-kod-s-toogleclass.html)

hhh 28.10.2014 17:13

Код с toogleClass
 
Всем привет. Подскажите как это код написать с toogleClass по-профессиональней
$(window).scroll(function() {
if ($(this).scrollTop() >=150) {
$('.wrapp-logo a').addClass('anim');
}
else {
$('.wrapp-logo a').removeClass('anim');
};
});

danik.js 28.10.2014 17:36

По-профессиональней - это не трогать класс при каждом событии скролла. Класс надо добавлять/убирать только при переходе через 150

рони 28.10.2014 17:37

hhh,
$(window).scroll(function(){

$('.wrapp-logo a').toggleClass('anim', $(this).scrollTop() >= 150);

});

hhh 28.10.2014 19:19

Цитата:

Сообщение от danik.js
По-профессиональней - это не трогать класс при каждом событии скролла. Класс надо добавлять/убирать только при переходе через 150

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

danik.js 28.10.2014 19:27

Цитата:

Сообщение от hhh
Так мне нужно чтобы при прокрутке более 150 пикселёу уменьшалось лого, и при обратной возвращались исходные размеры постоянно.


Т.е. прокрутили с нуля до 160 - добавили класс, еще крутанули на пять пикселей - опять добавили класс (пытаемся втиснуть его дважды, но он не втискивается), и так далее.

Впринципе, ща потестил в хроме в его Timeline, не вижу каких-то проблем из-за лишнего поиска по DOM и доступа к className.
Либо я не туда смотрю, либо это малозначительно для быстрых компьютеров. Возможно на мобилках это влияет заметней.

ruslan_mart 28.10.2014 19:29

$(function() {
    var elem = $('.wrapp-logo a'), flag;

    $(window).scroll(function() {
        var a = $(this).scrollTop() >= 150;
        if(!flag && a) {
             elem.addClass('anim');
             flag = true;
        }
        else if(flag && !a) {
             elem.removeClass('anim');
             flag = false;
        }
     });
});

hhh 28.10.2014 19:52

Цитата:

Сообщение от danik.js
Т.е. прокрутили с нуля до 160 - добавили класс, еще крутанули на пять пикселей - опять добавили класс (пытаемся втиснуть его дважды, но он не втискивается), и так далее.

Впринципе, ща потестил в хроме в его Timeline, не вижу каких-то проблем из-за лишнего поиска по DOM и доступа к className.
Либо я не туда смотрю, либо это малозначительно для быстрых компьютеров. Возможно на мобилках это влияет заметней.

Спасибо, теперь понял почему быдлокод.


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