Có cách nào đáng tin cậy, khung độc lập để xác định kích thước vật lý của một số <img src='xyz.jpg'>
được định lại kích thước ở phía máy khách không?Xác định kích thước ban đầu của trình duyệt hình ảnh chéo?
Trả lời
Bạn có 2 lựa chọn:
Lựa chọn 1:
Tháo width
và height
thuộc tính và đọc offsetWidth
và offsetHeight
Phương án 2:
Tạo Javascript Image
đối tượng, đặt src
và đọc width
và height
(bạn thậm chí không phải thêm nó vào trang để thực hiện việc này).
function getImgSize(imgSrc) {
var newImg = new Image();
newImg.onload = function() {
var height = newImg.height;
var width = newImg.width;
alert ('The image size is '+width+'*'+height);
}
newImg.src = imgSrc; // this must be done AFTER setting onload
}
Sửa bởi Pekka: Theo thỏa thuận trong các ý kiến, tôi đã thay đổi chức năng để chạy trên các sự kiện'onload' của hình ảnh. Nếu không, với hình ảnh lớn, height
và width
sẽ không trả lại bất kỳ thứ gì vì hình ảnh chưa được tải.
Điều đó sẽ không hoạt động với hình ảnh chưa được tải. Nó có thể là giá trị điều chỉnh nó để hoạt động đúng cho những người khác vấp ngã trên câu trả lời này. – James
@Gabriel, tôi đang sử dụng tính năng này nhưng với chức năng 'newImg.onload' để đảm bảo hình ảnh được tải khi tôi đặt chiều rộng/chiều cao. Bạn có ok với tôi chỉnh sửa câu trả lời của bạn cho phù hợp? –
Đó không phải là vấn đề –
Bạn có thể tải trước hình ảnh vào đối tượng Hình ảnh javascript, sau đó kiểm tra thuộc tính chiều rộng và chiều cao trên đối tượng đó.
Dĩ nhiên - tôi không phải đưa nó vào tài liệu. Sẽ làm theo cách đó, chúc mừng! –
hình ảnh (trên Firefox ít nhất) có một tài sản naturalWidth
/chiều cao, do đó bạn có thể sử dụng img.naturalWidth
để có được chiều rộng ban đầu
var img = document.getElementsByTagName("img")[0];
img.onload=function(){
console.log("Width",img.naturalWidth);
console.log("Height",img.naturalHeight);
}
/* Function to return the DOM object's in crossbrowser style */
function widthCrossBrowser(element) {
/* element - DOM element */
/* For FireFox & IE */
if( element.width != undefined && element.width != '' && element.width != 0){
this.width = element.width;
}
/* For FireFox & IE */
else if(element.clientWidth != undefined && element.clientWidth != '' && element.clientWidth != 0){
this.width = element.clientWidth;
}
/* For Chrome * FireFox */
else if(element.naturalWidth != undefined && element.naturalWidth != '' && element.naturalWidth != 0){
this.width = element.naturalWidth;
}
/* For FireFox & IE */
else if(element.offsetWidth != undefined && element.offsetWidth != '' && element.offsetWidth != 0){
this.width = element.offsetWidth;
}
/*
console.info(' widthWidth width:', element.width);
console.info(' clntWidth clientWidth:', element.clientWidth);
console.info(' natWidth naturalWidth:', element.naturalWidth);
console.info(' offstWidth offsetWidth:',element.offsetWidth);
console.info(' parseInt(this.width):',parseInt(this.width));
*/
return parseInt(this.width);
}
var elementWidth = widthCrossBrowser(element);
Chỉ cần thay đổi một chút tùy chọn thứ hai của Gabriel , để dễ sử dụng hơn:
function getImgSize(imgSrc, callback) {
var newImg = new Image();
newImg.onload = function() {
if (callback != undefined)
callback({width: newImg.width, height: newImg.height})
}
newImg.src = imgSrc;
}
Html: gọi
<img id="_temp_circlePic" src="http://localhost/myimage.png"
style="width: 100%; height:100%">
mẫu:
getImgSize($("#_temp_circlePic").attr("src"), function (imgSize) {
// do what you want with the image's size.
var ratio = imgSize.height/$("#_temp_circlePic").height();
});
- 1. MATLAB: hiển thị hình ảnh ở kích thước ban đầu
- 2. iPhone: Hiển thị hình ảnh ở kích thước ban đầu
- 3. Trình duyệt chéo 'vị trí' ban đầu - css
- 4. Thay đổi kích thước hình ảnh thành 50% kích thước ban đầu trong HTML
- 5. Xác định kích thước tệp hình ảnh + kích thước qua Javascript?
- 6. Lấy kích thước ban đầu của hình ảnh được chia tỷ lệ
- 7. Góc tròn của trình duyệt chéo (không có hình ảnh)
- 8. trong VIM, Cách đặt kích thước cửa sổ ban đầu thông qua trình duyệt tập tin?
- 9. Chỉnh sửa kích thước hình ảnh tự động dựa trên kích thước cửa sổ trình duyệt
- 10. Làm thế nào để thay đổi kích thước hình ảnh ban đầu thành một kích thước chung của hình ảnh trong Java?
- 11. Các hiệu ứng kích thước ban đầu của Java -Xms
- 12. Giữ kích thước ban đầu khi xuất hình ảnh từ minh hoạ
- 13. trình duyệt chéo thay đổi kích thước cửa sổ trình duyệt trong JavaScript
- 14. Trình bao bọc Fancybox không tự động định kích thước chính xác thành kích thước hình ảnh
- 15. PHP - Thay đổi kích thước hình ảnh trong máy chủ trước khi trình duyệt tải xuống
- 16. Xác định kích thước hình ảnh cho nhiều kích cỡ màn hình android/mật độ
- 17. Kích thước của hình ảnh trên UINavigationBar
- 18. Trình duyệt Android báo cáo kích thước màn hình sai?
- 19. Xác định kích thước của lớp C++ đa hình
- 20. jquery nhận kích thước hình ảnh
- 21. Kích thước Matlab của hình ảnh
- 22. Kích thước hình ảnh Carrierwave
- 23. Xác định kích thước của InputStream
- 24. Đặt kích thước cửa sổ ban đầu ở Caliburn.micro
- 25. Tự động thay đổi kích thước div dựa trên kích thước của cửa sổ trình duyệt
- 26. Thay đổi kích thước trình chỉnh sửa ajax.org ACE dựa trên kích thước của trình duyệt
- 27. Android - Giảm kích thước tệp hình ảnh
- 28. Thay đổi kích thước hình ảnh jpeg thành kích thước được chỉ định
- 29. Thay đổi kích thước hình ảnh IFrame
- 30. Xác định kích thước của CCLabelTTF
'img.onload = function() {console.log (img.height, img.width)} ' – neaumusic