Scale und center image in variable-size-div mit JS
HTML:
<div class="info-panel"></div>
<div class="image">
<img src="http://placehold.it/960x1400">
</div>
CSS:
.image {
height: 100%;
width: auto;
margin-right: 200px;
}
.info-panel {
position: fixed;
width: 200px;
height: 100%;
background-color: red;
right: 0px;
}
Ich versuche skalieren Sie die Bilder unten (nie) dynamisch zu passen in das Bild-div (ohne beschneiden), die ist variabel in der Höhe (100%) und die Breite (auf auto eingestellt). Das Bild muss auch zentriert (horizontal und vertikal) und gleichen padding von einigen Pixeln oben und unten.
Wird eine info-Tafel neben dem Bild-container, wie Sie sehen können, in die Geige, aber ich bin mir nicht sicher, ob dies relevant ist.
Tun, meine Aussagen machen Sinn?
Dank, ich habe viel zu viel Zeit mit dem Experimentieren mit diesem bereits! :/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich das richtig verstehe, willst du etwas wie diesem.
Skaliert werden, nach unten, wenn das Bild zu groß ist, aber behält die ursprüngliche Größe, wenn es passt in die Fenster. In anderen Worten, es kann nie Schuppen oben - nur nach unten.
Ist es eine Kombination von CSS und etwas jQuery:
Diese kurze JS zentriert das Bild vertikal:
Und diese Zeile CSS hält das Bild horizontal zentriert:
Und halten Sie die original-Größe des Bildes, ich habe gerade die max Höhe und Breite auf die
img
innerhalb der.image
- Klasse, etwa so:Können Sie passen Sie die Größe und Ränder um Ihre Bedürfnisse, nur daran erinnern, um Sie in relation zu einander 🙂
window
für diewindowHeight
variable, zum BeispielwindowHeight = $("#my-wrapper-div").outerHeight()
Einige der Techniken, die hier für Sie arbeiten kann:
http://css-tricks.com/centering-in-the-unknown/
Den trick, es ist die Verwendung von Tabellen-Elemente oder CSS-2.1-Tabelle anzuzeigen.
Edit: Weitere Ansätze hier: http://www.vanseodesign.com/css/vertical-centering/
Mischen Sie px mit %. Wenn Sie erreichen wollen, dass nur von der CSS, müssen Sie % für beide breiten:
... ansonsten, musst du den JS zu berechnen, die aktuell zur Verfügung stehende Breite auf der linken Seite und assing es die .image div:
HTML
CSS
JS (jQuery)