5

Вопрос по dom, jquery, javascript – javascript или jquery получают свойства background-position данного элемента, а затем динамически +/- к этому элементу

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

Так что я знаю, что если моя дефолтная позиция всегда равна 0 100, например, и я хочу перебросить для этого, то я знаю, что она будет 50 100 Как я могу просто иметь метод получения 2 значений этого, но только добавив к одному из них

  • Хорошее предложение, но я не думаю, что jQuery сообщит о любых значениях, начинающихся с нуля, кроме самого нуля.

    от
  • Честно говоря, правда; это просто привычное, возможно, навязчивое, желание не забыть ... хотя, возможно, в этом случае оно и не нужно.

    от
  • делаетattr("background-position") работает? разве это не часть стиля, а скорее не атрибут?

    от
  • Просто быстрое напоминание, чтобы запомнить основание ...

    от
  • Что если эта фоновая позиция возвращает процент? Как получить значение px?

    от
  • 16

    Вам нужно захватить background-position и разбить его на два значения

    выполнить вычисление, которое вернет значения в виде строки.

    Например

    myPos = $('.selection').css("background-position").split(" ")
    
    myPos[0] <-- will contain the X-value, "50px"
    myPos[1] <-- will contain the Y-value, "100px"
    

    Затем вам нужно превратить их в целые числа: (предположим, вы делаете то же самое с myPos [1])

    myPos[0] = parseInt(myPos[0].replace("px",""))
    

    Затем вы делаете математику и назначаете их обратно:

    myPos[0] = myPos[0] + 100
    
    $('.selection').css("background-position", myPos[0]+'px ' + myPos[1] + 'px')