@Novamoscow

Не могу получить и применить значение CSS свойства через JQ?

Пытаюсь записать текущее значение свойства 'left' в переменную 'a' и от этого значения отнимать значение скрола. Не работает. https://codepen.io/novamoscow/pen/vxRJOO
var left = $('.left-block');
var a;

$(window).scroll( function(){
    if ( $(window).scrollTop() > 10 && $(window).scrollTop() < 300) {

        $(left).css("left", $(window).scrollTop()+"px");
        $(left).css("top", $(window).scrollTop()+"px");
       }
    a = $('.left-block').css('left'); //Получаю значения а
    if ( $(window).scrollTop() > 301 ){

        $(left).css("left", a - $(window).scrollTop()+"px");
        $(left).css("top", $(window).scrollTop()+"px");

    }
});
  • Вопрос задан
  • 139 просмотров
Решения вопроса 2
tot0ro
@tot0ro
Front - end developer
Хмммм....

Для примера у вас

a = '32px' а $(window).scrollTop() = 55

если произвести вычитание:

'32px' - 55 = NaN

32px будет преобразовано не в 32 а в NaN, учите преобразование данных в JS.

Наверно вам нужно было что то похожее на это:

var left = $('.left-block'),
    a = 0,
    winST = 0; 

$(window).scroll( function() {
    winST = $(window).scrollTop();
  
    if ( winST > 10 && winST < 100) {
        $(left).css("left", winST + "px");
        $(left).css("top", winST + "px");
    }
  
    a = parseInt($('.left-block').css('left'));
 
    if ( winST > 100 ){
        $(left).css("left", (winST - a) + "px");
        $(left).css("top", winST + "px");
    }
});


На будущее пишите что вы хотите получить в итоге, а не то что у вас не работает на данный момент.
Ответ написан
Krasnodar_etc
@Krasnodar_etc
avito front
+ "px" - работать будет и без этого)
Всё просто. css() возвращает строку, а ты к строке добавляешь число. Выходит NaN
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы