如何將jQuery中的圖像調整爲一致的高寬比。例如,設置最大高度並使寬度正確調整。謝謝。jQuery調整高寬比爲
回答
您可以手動計算這個,
即:
function GetWidth(newHeight,orginalWidth,originalHeight)
{
if(currentHeight == 0)return newHeight;
var aspectRatio = currentWidth/currentHeight;
return newHeight * aspectRatio;
}
確保您使用的原始值的圖像否則會隨着時間的推移。
編輯:例如jQuery的版本(未測試)
jQuery.fn.resizeHeightMaintainRatio = function(newHeight){
var aspectRatio = $(this).data('aspectRatio');
if (aspectRatio == undefined) {
aspectRatio = $(this).width()/$(this).height();
$(this).data('aspectRatio', aspectRatio);
}
$(this).height(newHeight);
$(this).width(parseInt(newHeight * aspectRatio));
}
$("#some_image").resizable({ aspectRatio:true, maxHeight:300 });
的aspectRatio:真 - >保持原始寬高比
這裏有可能會做一個有用的功能是什麼你想要:
jQuery.fn.fitToParent = function()
{
this.each(function()
{
var width = $(this).width();
var height = $(this).height();
var parentWidth = $(this).parent().width();
var parentHeight = $(this).parent().height();
if(width/parentWidth < height/parentHeight) {
newWidth = parentWidth;
newHeight = newWidth/width*height;
}
else {
newHeight = parentHeight;
newWidth = newHeight/height*width;
}
var margin_top = (parentHeight - newHeight)/2;
var margin_left = (parentWidth - newWidth)/2;
$(this).css({'margin-top' :margin_top + 'px',
'margin-left':margin_left + 'px',
'height' :newHeight + 'px',
'width' :newWidth + 'px'});
});
};
基本上,它會抓取一個元素,將其居中放置在父元素中,然後對其進行拉伸以使父元素的背景都不可見,同時保持縱橫比。
然後再次,這可能不是你想要做的。
謝謝,這是一個巨大的幫助! – sowasred2012 2013-01-08 14:30:24
這有時會導致newWidth或newHeight大於各自的父維度。相反,我建議這樣的: http://stackoverflow.com/a/115492/175830 – 2015-05-07 23:20:56
@JasonAxelson:這完全是我的答案中的一點。此代碼可確保圖像的兩個尺寸均大於**或等於父級的尺寸。這旨在覆蓋,而不是填充。 – Eric 2015-05-08 13:47:36
有沒有會計副本和貼紙的數量呃!我也想知道這一點,我看到的所有縮放寬度或高度都是無窮無盡的例子。誰會希望其他的溢出?!對於寬度,所以無論圖像
- 調整大小的寬度和高度,而不需要爲一個循環
- 不超過圖像原始尺寸
- 用途可以正常工作,即寬度/方面的高度的數學和高度*方面實際上適當放大和縮小:/
應該是直線前進足夠的轉換爲JavaScript或其他語言
//////////////
private void ResizeImage(Image img, double maxWidth, double maxHeight)
{
double srcWidth = img.Width;
double srcHeight = img.Height;
double resizeWidth = srcWidth;
double resizeHeight = srcHeight;
double aspect = resizeWidth/resizeHeight;
if (resizeWidth > maxWidth)
{
resizeWidth = maxWidth;
resizeHeight = resizeWidth/aspect;
}
if (resizeHeight > maxHeight)
{
aspect = resizeWidth/resizeHeight;
resizeHeight = maxHeight;
resizeWidth = resizeHeight * aspect;
}
img.Width = resizeWidth;
img.Height = resizeHeight;
}
如果圖像的高度和寬度都小於maxHeight,則maxWidth不會縮放圖像。 – tech20nn 2012-06-12 13:56:09
- 1. PHP圖像的寬高比調整
- 2. SVG調整圖像的高寬比
- 3. jquery textarea調整寬度和高度
- 4. javascript將圖像調整爲全屏並保持寬高比
- 5. 將位圖調整爲固定值,但不改變寬高比
- 6. 使用jQuery調整高度或寬度以百分比減去值並保持高寬比
- 7. 調整視圖寬度,保持與CSS的圖像寬高比
- 8. 調整上傳寬度並保持高度比例成正比
- 9. JQuery調整邊距 - 基於像素調整百分比寬度
- 10. 將JPEG圖像調整爲固定寬度,同時保持寬高比不變
- 11. 調整div寬度相對於其高度來保持寬高比
- 12. Imagemagick - 將圖像大小調整爲25像素的高度和寬高比
- 13. 爲什麼jquery dialog()自動調整高度,寬度失敗?
- 14. jQuery - 可調整的長寬比只爲一個手柄
- 15. 調整大小/按比例調整facebook像按鈕(高度和寬度)
- 16. 使用jquery調整div大小會導致子圖像丟失寬高比
- 17. 的Javascript調整窗口到原始的寬高比
- 18. 如何調整幀的視頻,從與寬高比
- 19. 在保持寬高比的同時調整窗體大小
- 20. HTML5視頻:調整大小時保留寬高比
- 21. App Engine圖像大小調整不保持高寬比?
- 22. 在c#中調整大小後保留表格的寬高比
- 23. 寬高比圖像調整大小上的excanvas錯誤
- 24. 調整ImageView的大小以適合寬高比
- 25. 如何進一步用寬高比調整
- 26. 調整大小時保持div寬高比
- 27. PHP調整圖像大小保持高寬比
- 28. 試圖調整作物座標以適應新的寬高比
- 29. 如何調整視頻刷新寬高比
- 30. 中心背景幻燈片自動調整保持高寬比
有一種方法來設置像現有的圖像的最大寬度和高度 - ImageResize( 「imgID」,maxWidth,maxHeight); 我已經嘗試過類似的技術在PHP中,但通過jquery插件看,我找不到一個會做的伎倆。 – usertest 2009-11-05 18:27:27
解釋你最大的意思。有最大的寬度/高度CSS屬性,是不是你在找什麼? – Paul 2009-11-05 19:16:43
謝謝。第二個例子接近我所尋找的,但是這個例子不起作用。據我可以告訴其中一個問題是改變寬度或高度應該由css()函數設置。我嘗試過,但該示例仍然無效。那是因爲aspectRatio沒有設置? – usertest 2009-11-06 15:26:45