jquery,调整画布大小而不缩放
jquery, resize a canvas without scaling
我试图将画布放入容器中。我希望画布的大小与容器相同。为此,我使用了JQuery,但是,结果可以缩放我的画布。这不是我的本意,特别是因为我在调整大小后绘制。在良好的旧式JavaScript中做看似相同的事情会给我带来预期的结果。
我个人没想到JQuery的结果,我花了一段时间才弄清楚问题所在。有谁知道他们为什么选择这种实现以及为什么它会给出不同的结果?我希望通过分享这个,我可以为一些人节省很多时间!
感谢任何愿意进一步研究解决这个问题的人!
下面是一些示例代码:
<html>
<head>
<title>Canvas resizing</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<style type="text/css">
#container1{
background-color: green;
width: 100px;
height: 100px;
margin: 50px auto;
}
#container2{
background-color: red;
width: 100px;
height: 100px;
margin: 50px auto;
}
</style>
</head>
<body>
<div id="container1">
<canvas></canvas>
</div>
<div id="container2">
<canvas></canvas>
</div>
<script type="text/javascript">
function draw (canvas) {
var context=canvas.getContext("2d");
context.lineWidth = 5;
context.rect(25,25,50,50);
context.stroke();
}
$(document).ready(function () {
//javascript
var container = document.getElementById('container1');
var canvas = container.childNodes[1];
canvas.width = 100;
canvas.height = 100;
draw(canvas);
//jquery
var container = $('#container2');
var canvas = container.children()[0];
$(canvas).width(100);
$(canvas).height(100);
draw(canvas);
});
</script>
</body>
</html>
jQuery width 和 height
方法是设置 CSS width 和 height 属性的简写别名。使用 CSS 调整画布大小会导致您看到缩放、扭曲的外观。纯 JavaScript 版本的代码正在设置 canvas 元素的宽度和高度属性。要在jQuery中实现相同的目标,您可以使用:
$(canvas).prop('width', 100)
$(canvas).prop('height', 100)
JSFiddle
相关文章:
- 巧妙的屏幕大小和缩放(在Javascript上)
- 使用“缩放”按比例调整全屏图像的大小;超大的“;jQuery插件
- 未注释img´除非调整浏览器大小、缩放或打开开发工具,否则不会显示
- 更改iphone/ipad保存缩放功能的字体大小
- 如何防止iframe在缩放时重新调整大小
- 如何在用户缩放我的网站时修复字体大小(CTRL+'+')
- 调整脚本大小可以向上而不是向下缩放.使用行列式会使它跳跃
- fabricjs如何在其他元素缩放时保持组元素的固定大小
- 缩放后,固定特定元素的大小
- 区分程序化Bing AJAX地图导航与用户平移/缩放和窗口大小
- 阻止Windows 8上IE中的网页缩放/调整大小
- 背景大小:包含,缩放后获取大小
- 使用mootools Fx缩放背景大小
- 使用jQuery缩放后检索背景图像的大小
- PDF 响应式缩放浏览器大小调整
- 禁用img缩放/调整大小?(如何获得“揭示效果”?)
- 如何检测滚动到底部时,页面缩放(调整大小)
- 在iframe中自动缩放(调整大小)图像
- 如何在javascript中缩放(调整大小)图像保持长宽比
- 如何缩放视频大小以适应帧