解決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)文章
一文總結(jié)JavaScript中常見的設(shè)計(jì)模式
在程序設(shè)計(jì)中有很多實(shí)用的設(shè)計(jì)模式,而其中大部分語言的實(shí)現(xiàn)都是基于“類”。在程序設(shè)計(jì)中有很多實(shí)用的設(shè)計(jì)模式,而其中大部分語言的實(shí)現(xiàn)都是基于“類”。,本文將總結(jié)了JavaScript中常見的十五種設(shè)計(jì)模式,感興趣的朋友可以參考下2023-05-05js 利用image對(duì)象實(shí)現(xiàn)圖片的預(yù)加載提高訪問速度
我們來學(xué)習(xí)一種名為圖像預(yù)裝載(image preloading)的小技巧來提高圖像訪問速度,一些瀏覽器試圖通過在本地緩存中保存這些圖片來解決此問題,感興趣的朋友可以了解下2013-03-03javascript中setTimeout和setInterval的unref()和ref()用法示例
本文通過一個(gè)小例子想大家講解了setTimeout和setInterval的unref()和ref()用法和使用環(huán)境,代碼很簡(jiǎn)潔,有需要的小伙伴自己參考下吧。2014-11-11Bootstrap面板(Panels)的簡(jiǎn)單實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Bootstrap面板(Panels)的簡(jiǎn)單實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03javascript結(jié)合fileReader 實(shí)現(xiàn)上傳圖片
FileReader具體支持哪些方法和事件,這里就不介紹了,有興趣的可以去w3c官網(wǎng)上看看FileReader介紹,這里主要介紹一下FileReader常見應(yīng)用,以及fileReader 實(shí)現(xiàn)上傳圖片示例分享。2015-01-01javascript table排序 這個(gè)更簡(jiǎn)單了,不用改變現(xiàn)在的表格結(jié)構(gòu)
另外一個(gè)table排序,這個(gè)更簡(jiǎn)單了,不用改變現(xiàn)在的表格結(jié)構(gòu),來自國(guó)外的代碼。2010-04-04