я пытался сделать это в течение нескольких часов, но до сих пор я не добился никакого прогресса.
У меня есть сайт с несколькими анимациями, некоторые из них активируются при клике, а некоторые при наведении. что-то похожее на анимацию, найденную на этом сайте: http://www.pixelwrapped.com/ кошачий хвост является отзывчивым, так как когда вы масштабируете браузер, он также масштабируется вместе с ним.
это код, который я использую для создания анимации
.monster {
position: absolute;
width: 100px;
height: 100px;
margin: 2% auto;
background: url('img/le-cloud.png') left center;
overflow: auto;
display: block;
left: 20%;
top: 40%;
}
.monster:hover {
position: absolute;
width: 100px;
height: 100px;
margin: 2% auto;
background: url('img/le-cloud.png') left center;
animation: play .9s steps(18);
overflow: auto;
display: block;
left: 20%;
top: 40%;
}
я нашел этот учебник, который использует проценты, который работает для изменения 1 кадра, не воспроизводя все 18 кадров в этом примере, у меня есть другие анимации, состоящие из более чем 30 спрайтов, я просмотрел spritely.js , но он не отвечал.
Любые идеи, как я могу это решить?
Я понял, как это сделать в конце концов! На всякий случай, если кому-то все еще не все равно, позвольте мне кое-что объяснить, чтобы вы не проходили через то, через что прошел я:
<style>
div.sprite {
margin: 0 auto;
width: 40%;
/* Change this to what ever value you desire*/
height: 0;
padding-bottom: 40%;
background-image: url("le-cloud-copy.png");
/* Add the sprite sheet here, must be on a staright line*/
background-position: 0 0;
background-size: 1800%;
/* I have 18 sprites in the sheet thus it's 1800%, if it was 4 you'd use 400% and so on*/
display: block;
}
div.sprite:hover {
/* background-position: 500% 0;*/
animation: play .9s steps(18);
/* 18 steps to go over al the sprites i have, if you had 4 in the sprite the value would be 4 for example */
}
@keyframes play {
100% {
background-position: 1800% 0;
}
}
</style>
И волшебство здесь заключается в том, чтобы включить эту библиотеку, и это должно работать.
<script src="js/prefixfree.min.js"></script>
Попробуйте использовать преобразования scale
и любые точки останова, которые вам нужны. Он поддерживается в IE9 и более поздних версиях, но вы можете эмулировать его в IE < 9, используя zoom
свойство Microsoft. Другие (не легко) возможны с использованием фильтра MS Matrix.
@media(max-width:1024px){
.monster {
transform:scale(0.5);
}
}
scale
для адаптивного дизайна — плохая практика.scale()
для изображений допустимо, если 1) значение масштаба меньше 1 (больше 1 всегда размыто), 2) изображение позиционировано абсолютно (так что разница в ограничивающей рамке и внешнем виде не имеет значения), 3) производительность не имеет большого значения (было бы лучше загрузить изображение меньшего размера, если требуется только изображение меньшего размера) и 4) если оно сопряжено с любыми другими преобразованиями, оно должно быть сильно проверено, поскольку у браузеров возникают проблемы с определенными типами преобразований, особенно в сочетании друг с другом
Винсент
Йоонас
Нур
Йоонас
Нур
Нур
Винсент
Нур
Зак Сосье
:hover
состоянии. Вам просто нужно иметь те, которые вы меняете из исходного состоянияЛучано
Кай