<script>
// Note: this uses jQuery.
// It makes getting/setting the dimensions easier,
// but you can do this with normal JavaScript
var img = $("#img");
var container = $("#container");
var width = img.width();
var height = img.height();
var maxWidth = container.width();
var maxHeight = container.height();
var ratio = maxWidth / width;
if(height * ratio > maxHeight) {
ratio = maxHeight / height;
}
img.width(width * ratio);
img.height(height * ratio);
</script>
document.addEventListener('DOMContentLoaded', function(){
var v = document.getElementById('v');
var canvas = document.getElementById('c');
var context = canvas.getContext('2d');
}
function draw(v) {
c.drawImage(v, 0, 0);
}
2 回答
如果您愿意使用JQuery(或常规JavaScript),那么这样的解决方案可能会起作用:
这样做是因为它找到了宽度和高度相乘的比率,无论哪个更小(这样它总是适合窗口) .
更新:在JSFiddle.net上测试 . 看到它here .
我希望这可以帮助你!
阅读完有关视频的说明后,请查看以下内容:
https://jsfiddle.net/d0dox9xt/
唯一的技巧是设置宽度:100%;这将保持纵横比 .
注意在JS中
drawImage函数可以使用许多参数 . 第一个参数是插入媒体,接下来的两个是用于定位 . 您可以使用许多参数来定位和更改高度和宽度 . 我让他们独自一人,所以它将遵循CSS规则 .
以下是有关放置在画布上的更多信息的链接:https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage