Как управлять спрайтами CSS с помощью JQuery

0

Это не оживляет, как я ожидаю, почему он не оживляет?

HTML

<div id='menuI'></div>

CSS

#menuI {
    height: 100px;
    width: 100px;
    background:url('https://www.teledynedalsa.com/images/semi/STA1600_2_200w.jpg') 0px 0px;
    text-align:justify;
}

JavaScript

$(document).ready(function(){
    $('#menuI').mouseenter(function(){
        $('#menuI').stop();
            $('#menuI').animate({
                backgroundPosition: '0px 100px'
            }); 
        });
    $('#menuI').mouseleave(function(){
        $('#menuI').stop();
        $('#menuI').animate({
            backgroundPosition: '0px 0px'
        }); 
    }); 
});
Теги:

2 ответа

2

Как сказал showdev, для этого вам нужен плагин jQuery. Однако вы можете также рассмотреть возможность использования переходов, поскольку он очень хорошо подходит для этого.

Следующий css приведет к тому же

#menuI {
    height:100px;
    width:100px;
    background:url('https://www.teledynedalsa.com/images/semi/STA1600_2_200w.jpg') 0px 0px;
    transition: background linear 0.4s; //Add vendor prefixed versions
    text-align:justify;
}

#menuI:hover {
    background-position: 0px 100px;
}

Пример: http://jsfiddle.net/9fCnN/

  • 0
    Хорошая альтернатива использованию jQuery. Re: «версии с префиксом производителя» для кросс-браузерной поддержки: jsfiddle.net/9fCnN/1
1

Я считаю, что плагин необходим для анимации "backgroundPosition".

У меня был успех с использованием свойства background-position-y:

$(document).ready(function () {
    $('#menuI').mouseenter(function () {
       $(this).stop().animate({'background-position-y':'100px'});
     });
    $('#menuI').mouseleave(function () {
        $(this).stop().animate({'background-position-y':'0px'});
    });
});

http://jsfiddle.net/Ub7aN/1/

Редактировать:

К сожалению, это не работает в Firefox.

См. Эти сообщения:
JQuery Анимация фонового изображения по оси Y
Анимировать фоновое положение y в Firefox с помощью JQuery

  • 0
    У меня не работает, хммм
  • 0
    Это не работает в jsfidde или на вашей собственной странице? Что идет не так? Какая версия jQuery?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню