2015-05-18 2 views
0

У меня есть 11 кадров png spritesheet. Когда вы наводите курсор, он будет воспроизводить анимацию до последнего кадра, а затем приостанавливаться, а когда вы наводите курсор, он отменит анимацию до первого кадра. У меня это до сих пор:Пауза и обратная анимация CSS при зависании

.intern { 
 
    width: 328px; 
 
    height: 187px; 
 
    background-image: url("http://i.imgur.com/zNsJCnM.png"); 
 
    -webkit-animation: in 0.5s steps(11); 
 
} 
 
.intern:hover { 
 
    -webkit-animation: out 0.5s steps(11); 
 
} 
 
@-webkit-keyframes in { 
 
    from { 
 
    background-position: 0px 0px; 
 
    } 
 
    to { 
 
    background-position: 0px -2057px; 
 
    } 
 
} 
 
@-webkit-keyframes out { 
 
    0% { 
 
    background-position: 0px 0px; 
 
    } 
 
    100% { 
 
    background-position: 0px -2057px; 
 
    } 
 
}
<div class="intern"></div>

JS Fiddle:http://jsfiddle.net/os2jm4h5/

Может кто-нибудь помочь мне? Я хотел бы сделать это с помощью CSS (без JavaScript) и желательно использовать только один div.

+3

Пожалуйста, включите ваш код, а не только ссылку jsfiddle. Кроме того, пока вы говорите, что хотите, и, по-видимому, имеете некоторый код, вы не даете понять, что делает ваш код * в настоящее время *, и каким образом (ей) он отсутствует. Вы можете суммировать свою проблему? –

+0

Я не думаю, что вы можете это сделать, потому что в CSS есть только 2 состояния: нормальное состояние и состояние зависания. Вы не можете манипулировать этим с помощью CSS. CSS не имеет возможности смотреть, когда пользователь отталкивает свою мышь от изображения и останавливает анимацию в определенный момент и завершает анимацию. У вас есть javascript для этого. – Rotan075

ответ

0

Это возможно с некоторыми изменениями в CSS:

  • Добавить background-position: 0px -1683px; в .intern:hover. Это гарантирует, что анимация «приостанавливается» на последнем кадре. В настоящее время, когда анимация наведения заканчивается background-position, она возвращается к 0px 0px;.
  • Reverse background-position в from и to для @-webkit-keyframes in
  • Обратный background-position в 0% и 100% для @-webkit-keyframes out

.intern { 
 
    width: 328px; 
 
    height: 187px; 
 
    background-image: url("http://i.imgur.com/zNsJCnM.png"); 
 
    -webkit-animation: in 0.5s steps(11); 
 
} 
 
.intern:hover { 
 
    -webkit-animation: out 0.5s steps(11); 
 
    background-position: 0px -1683px; 
 
} 
 
@-webkit-keyframes in { 
 
    from { 
 
    background-position: 0px -2057px; 
 
    } 
 
    to { 
 
    background-position: 0px 0px; 
 
    } 
 
} 
 
@-webkit-keyframes out { 
 
    0% { 
 
    background-position: 0px 0px; 
 
    } 
 
    100% { 
 
    background-position: 0px -2057px; 
 
    } 
 
}
<div class="intern"></div>

Обратите внимание, что background-position: 0px -1683px; используется потому, что последнее изображение в спрайт Shee t (background-position: 0px -2057px;) на самом деле является копией первого кадра.