解決canvas畫布使用fillRect()時(shí)高度出現(xiàn)雙倍效果的問題
當(dāng)設(shè)置canvas的寬度和高度時(shí),只有內(nèi)嵌css有效,外部css會(huì)出現(xiàn)拉伸的情況,例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
window.onload=function(){
var canvas=document.getElementById('canvas').getContext('2d');
canvas.fillRect(50,50,50,50);
}
</script>
<style>
body{
background: #000;
}
#canvas{
width: 300px;
height: 400px;
background:#fff;
}
</style>
</head>
<body>
<canvas id="canvas">
<span>不支持canvas標(biāo)簽</span>
</canvas>
</body>
</html>
顯示情況如下:

該效果與我們預(yù)想的不同,此時(shí)有兩種修改方案:
(1) 在代碼js中添加設(shè)置寬高屬性的代碼設(shè)置寬度和高度:
canvas.setAttribute("height",canvas.clientHeight);
canvas.setAttribute("width",canvas.clientWidth);
(2) 除去外部css中設(shè)置寬高屬性的代碼,給canvas標(biāo)簽直接添加寬度和高度屬性:
<canvas id="canvas" width="300" height="400" >
<span>不支持canvas標(biāo)簽</span>
</canvas>
最后顯示效果如下:

以上這篇解決canvas畫布使用fillRect()時(shí)高度出現(xiàn)雙倍效果的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于元素的尺寸(dimensions) 說(shuō)明
在使用JavaScript腳本獲取元素的尺寸時(shí),有幾個(gè)屬性你需要弄清楚,不然會(huì)很棘手。2011-09-09
一文總結(jié)JavaScript中常見的設(shè)計(jì)模式
在程序設(shè)計(jì)中有很多實(shí)用的設(shè)計(jì)模式,而其中大部分語(yǔ)言的實(shí)現(xiàn)都是基于“類”。在程序設(shè)計(jì)中有很多實(shí)用的設(shè)計(jì)模式,而其中大部分語(yǔ)言的實(shí)現(xiàn)都是基于“類”。,本文將總結(jié)了JavaScript中常見的十五種設(shè)計(jì)模式,感興趣的朋友可以參考下2023-05-05
js 利用image對(duì)象實(shí)現(xiàn)圖片的預(yù)加載提高訪問速度
我們來(lái)學(xué)習(xí)一種名為圖像預(yù)裝載(image preloading)的小技巧來(lái)提高圖像訪問速度,一些瀏覽器試圖通過(guò)在本地緩存中保存這些圖片來(lái)解決此問題,感興趣的朋友可以了解下2013-03-03
微信小程序訪問mysql數(shù)據(jù)庫(kù)流程詳解
日常我們?cè)陂_發(fā)小程序的時(shí)候,總是希望把數(shù)據(jù)提交回?cái)?shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),那在小程序中該如何訪問數(shù)據(jù)庫(kù)呢?本篇我們就介紹一下具體的思路2022-08-08
javascript中setTimeout和setInterval的unref()和ref()用法示例
本文通過(guò)一個(gè)小例子想大家講解了setTimeout和setInterval的unref()和ref()用法和使用環(huán)境,代碼很簡(jiǎn)潔,有需要的小伙伴自己參考下吧。2014-11-11
Bootstrap面板(Panels)的簡(jiǎn)單實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Bootstrap面板(Panels)的簡(jiǎn)單實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
javascript結(jié)合fileReader 實(shí)現(xiàn)上傳圖片
FileReader具體支持哪些方法和事件,這里就不介紹了,有興趣的可以去w3c官網(wǎng)上看看FileReader介紹,這里主要介紹一下FileReader常見應(yīng)用,以及fileReader 實(shí)現(xiàn)上傳圖片示例分享。2015-01-01
javascript table排序 這個(gè)更簡(jiǎn)單了,不用改變現(xiàn)在的表格結(jié)構(gòu)
另外一個(gè)table排序,這個(gè)更簡(jiǎn)單了,不用改變現(xiàn)在的表格結(jié)構(gòu),來(lái)自國(guó)外的代碼。2010-04-04

