CSS-Übergänge max-width und max-height
So, ich habe eine object
innerhalb einer div
container. Das Objekt hat die max-width (600px)
und max-height (400px)
Eigenschaften festgelegt. Wenn ich mit dem Objekt, die Eigenschaften werden festgelegt, um none
so das Objekt width
und height
gerendert werden kann, richtig. Allerdings beim bewegen der Maus aus der object
es sofort ändert es width
und height
zu den max-width (600px)
und max-height (400px)
Werte und nach einer Sekunde fällt es zurück zu seiner ursprünglichen width
und height
Werte.
Also, wie kann ich die übergänge machen die object
ändern, es ist width
und height
reibungslos, sowohl, wenn die Maus über Sie und, wenn der Mauszeiger aus.
HTML:
<html>
<!-- Blah blah some head tags here. -->
<body>
<div id="c_a">
<object data="https://www.google.ro/images/srpr/logo11w.png" type="image/png"></object>
</div>
</body>
</html>
CSS:
html{
font-size: larger;
width: 100%;
height: 100%;
}
#c_a object{
transition: width 1s linear .5s, height 1s linear .5s;
-webkit-transition: width 1s linear .5s, height 1s linear .5s;
-o-transition: width 1s linear .5s, height 1s linear .5s;
-moz-transition: width 1s linear .5s, height 1s linear .5s;
position: relative;
width: 100%;
height: 100%;
max-width: 600px;
max-height: 400px;
vertical-align: text-top;
}
#c_a object:hover{
width: 200%;
height: 200%;
max-width: none;
max-height: none;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Sie nicht die Breite angegeben, die auf das übergeordnete element.
Haben Sie Prozent auf Ihrem breiten
object
als 100%. 100%, was? Es ist die 100% Prozent des übergeordneten Elements Breite, Ihrediv
in diesem Fall. Wenn das übergeordnete element nicht die Breite angegeben, dann sind Sie am Ende mit solchen problem(s).Lösung: Geben Sie hier die Breite auf Ihre wrapper -
div
.Demo: http://jsfiddle.net/abhitalks/Pv4y4/4/
CSS:
Hinweis: Idealerweise würdest du auch angeben
height
auf die Muttergesellschaft.Update:
Solange die angegebene Breite auf der übergeordneten
div
ist innerhalb der Regeln dermax-width
es funktioniert gut. Allerdings, wenn die ursprüngliche Breite der Verletzung oder nähert sich dermax-width
Regel ist, dann wird die Umstellung nehmen Sie über denmax-width
und dann wird der snap-back-das original.Problem: Festlegung der übergang separat auf
width
undheight
wird nicht funktionieren, wie es versucht, um den übergang auf die Eigenschaften und somitmax-
es ignoriert. Damit ist der Spring-Effekt.Lösung: Erstens, geben Sie nicht die
max-
es alsnone
. Denn Sie sind die Erhöhung der Bildgröße von 200%, geben Sie diese auch als 200%. Zweitens geben Sie übergang ohne spezifische Eigenschaften. Dadurch werden alle relevanten Eigenschaften der transition und wird dazu beitragen, das problem zu einem gewissen Grad.Demo 2: http://jsfiddle.net/abhitalks/Pv4y4/9/
CSS:
Hoffe, das hilft.
div
. Sie werden haben das zu tun.max-width
verletzt wird, dann rastet es wieder. Ja. Gib mir etwas Zeit..Wenn Sie ändern möchten
max-width
/max-height
reibungslos, müssen Sie diemax-*
im minimierten Zustand, und legen Sie die Höhe/Breite zuauto
: