Я требую 3 вещи:
- Масштабирование div растягивает пиксели и не добавляет больше.
- background-size: содержать; Гарантирует, что ваше фоновое изображение полностью отображается
- Div никогда не изменяет размер.
- Как вы можете см. Здесь Div по-прежнему 200x200 пикселей
- Размер изображения изменяется до 200x200 пикселей, даже если он 400x400 пикселей. Смотрите здесь
- Почти доказано в 1. шрифт все еще острый, но javascript считает, что ширина и высота 200x200 пикселей.
Ладно, исправьте:
Есть несколько способов.
Вы можете изменить ширину и высоту вместо масштабирования. Это не очень красиво, или, по крайней мере, вам очень повезло, если этой анимации не хватает своего способа броска (на iOS).
Что-то еще может быть масштабированием и обнаружением webkitTranstionEnd
$('div').bind("webkitTransitionEnd", function() {
$(this).css({
"-webkit-transform": "scale(1)",
"width": "400px",
"height": "400px"
});
$(this).unbind("webkitTransitionEnd");
});
Не забудьте отменить привязку события webkitTransitionEnd. Иначе это удвоение вызова функции.
Но что случилось, это анимация назад. Поэтому мы должны сохранить переход в классе, чтобы мы могли добавлять и удалять его, когда захотим:
div {
-moz-transition-duration: 0ms;
}
div.transition {
-moz-transition-duration: 200ms;
}
А затем добавьте класс, когда нам нужно оживить:
setTimeout(function() {
$('div').addClass("transition");
$('div').css({
backgroundImage: 'url(http://img812.imageshack.us/img812/212/cssc.png)',
webkitTransform: 'scale( 2 )',
mozTransform: 'scale( 2 )'
});
}, 3000);
И снова удалите его в webkitTransitionEnd
$(this).removeClass('transition');
$(this).css({
"-webkit-transform": "scale(1)",
"width": "400px",
"height": "400px"
* +1045 *});
$ (Это) .unbind ( "webkitTransitionEnd");
Что ??! Это не добавить / удалить класс вовремя ?! Что случилось.
Иногда браузеру нужно немного времени, чтобы убедиться, что класс добавлен. Поэтому вам нужно обернуть настройку css в setTimeout (function () {...}, 0);
setTimeout(function() {
$('div').addClass("transition");
setTimeout(function(){
$('div').css({
backgroundImage: 'url(http://img812.imageshack.us/img812/212/cssc.png)',
webkitTransform: 'scale( 2 )',
mozTransform: 'scale( 2 )'
});
}, 0);
}, 3000);
Также, когда мы удаляем класс:
$(this).removeClass('transition');
setTimeout(function(){
$(this).css({
"-webkit-transform": "scale(1)",
"width": "400px",
"height": "400px"
});
$(this).unbind("webkitTransitionEnd");
}, 0);
Так долго, теперь проблема в том, что он масштабируется и становится размытым, а после масштаба он становится очень резким.
Что мы можем с этим поделать, я не знаю, но надеюсь, что это поможет вам где-то!
Andreas