Saya memiliki gambar yang akan cukup besar dalam dimensi dan saya ingin mengecilkannya dengan jQuery sambil menjaga proporsi dibatasi, yaitu rasio aspek yang sama.
Dapatkah seseorang mengarahkan saya ke beberapa kode, atau menjelaskan logikanya?
javascript
jquery
image
resize
kobe
sumber
sumber
max-width
danmax-height
ke100%
.<img src='image.jpg' width=200>
Jawaban:
Lihatlah potongan kode ini dari http://ericjuden.com/2009/07/jquery-image-resize/
sumber
max-width
danmax-height
ke100%
. jsfiddle.net/9EQ5cSaya pikir ini adalah metode yang sangat keren :
sumber
Math.floor
akan sangat membantu dengan desain pixel yang sempurna :-)function imgSizeFit(img, maxWidth, maxHeight){ var ratio = Math.min(1, maxWidth / img.naturalWidth, maxHeight / img.naturalHeight); img.style.width = img.naturalWidth * ratio + 'px'; img.style.height = img.naturalHeight * ratio + 'px'; }
Jika saya memahami pertanyaan dengan benar, Anda bahkan tidak perlu jQuery untuk ini. Mengecilkan gambar secara proporsional pada klien dapat dilakukan dengan CSS saja: cukup atur
max-width
danmax-height
ke100%
.Ini biola: http://jsfiddle.net/9EQ5c/
sumber
width: auto; height: auto;
agar kode Anda berjalan :)Untuk menentukan rasio aspek , Anda harus memiliki rasio untuk membidik.
Dalam contoh ini saya menggunakan
16:10
karena ini rasio aspek monitor yang khas.Hasil dari di atas adalah
147
dan300
sumber
sebenarnya saya baru saja mengalami masalah ini dan solusi yang saya temukan anehnya sederhana dan aneh
dan secara ajaib gambar diubah ukurannya ke ketinggian baru dan mempertahankan rasio yang sama!
sumber
Ada 4 parameter untuk masalah ini
Dan ada 3 parameter kondisional yang berbeda
larutan
itu semua yang perlu kamu lakukan.
Ini adalah forum yang matang, saya tidak memberi Anda kode untuk itu :)
sumber
Apakah
<img src="/path/to/pic.jpg" style="max-width:XXXpx; max-height:YYYpx;" >
membantu?Browser akan menjaga rasio aspek tetap utuh.
yaitu
max-width
tendangan ketika lebar gambar lebih besar dari tinggi dan tingginya akan dihitung secara proporsional. Demikian pulamax-height
akan berlaku ketika tinggi lebih besar dari lebar.Anda tidak memerlukan jQuery atau javascript untuk ini.
Didukung oleh ie7 + dan browser lainnya ( http://caniuse.com/minmaxwh ).
sumber
Ini harus berfungsi untuk gambar dengan semua kemungkinan proporsi
sumber
Ini koreksi jawaban Mehdiway. Lebar dan / atau tinggi baru tidak disetel ke nilai maks. Kasing uji yang baik adalah sebagai berikut (1768 x 1075 piksel): http://spacecoastsports.com/wp-content/uploads/2014/06/sportsballs1.png . (Saya tidak dapat mengomentarinya di atas karena kurangnya poin reputasi.)
sumber
sumber
Jika gambar proporsional maka kode ini akan mengisi pembungkus dengan gambar. Jika gambar tidak proporsional maka lebar ekstra / tinggi akan dipotong.
sumber
Tanpa temp-vars atau kurung tambahan.
Perlu diingat: Mesin pencari tidak menyukainya, jika atribut lebar dan tinggi tidak cocok dengan gambar, tetapi mereka tidak tahu JS.
sumber
Setelah beberapa percobaan dan kesalahan saya datang ke solusi ini:
sumber
Pengubahan ukuran dapat dicapai (mempertahankan rasio aspek) menggunakan CSS. Ini adalah jawaban yang disederhanakan lebih lanjut yang terinspirasi oleh pos Dan Dascalescu.
http://jsbin.com/viqare
sumber
2 Langkah:
Langkah 1) menghitung rasio lebar asli / tinggi asli Gambar.
Langkah 2) gandakan rasio original_width / original_height dengan tinggi baru yang diinginkan untuk mendapatkan lebar baru yang sesuai dengan tinggi baru.
sumber
Masalah ini dapat diatasi dengan CSS.
sumber
Ini benar-benar bekerja untuk saya untuk item yang dapat ditarik - aspectRatio: true
sumber