HTML5 中,我們除了上一節講過的可以對圖形設置平移、旋轉、縮放,還可以給圖形添加陰影效果。添加陰影的時候只需要利用圖形上下文對象的幾個關于陰影繪制的屬性就可以實現啦。
shadowOffsetX 屬性和 shadowOffsetY 屬性分別用于設置陰影在 X 軸和 Y 軸的延伸距離,屬性值為正值表示向下或向右延伸,負值表示向上或向左延伸。
shadowBlur 屬性用于設置陰影的模糊度,當我們不希望圖形的陰影太清晰時,可以使用這個屬性。屬性值為必須為正值,否則無效喲,一般設定在 0到10 之間。
shadowColor 屬性值用于設置陰影的顏色,屬性值可以為任意標準的 CSS 顏色值,默認顏色為黑色。
例如給一個粉色的矩形繪制陰影。
示例:
繪制向右偏移 10 像素的陰影:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML5學習(9xkd.com)</title>
</head>
<body>
<canvas id="mycanvas" width="300" height="200" style="border: 1px solid #000;"></canvas>
<script>
var can = document.getElementById("mycanvas");
var ctx = can.getContext("2d");
ctx.shadowOffsetX = 10;
ctx.shadowBlur = 10;
ctx.shadowColor="#000";
ctx.fillStyle = "pink"; // 填充顏色
ctx.fillRect(50, 50, 150, 70);
</script>
</body>
</html>
在瀏覽器中的演示效果:
可以看到上圖中,陰影的位置向右偏移,如果想要陰影向左偏移,可以將shadowOffsetX 的值設置為負數。
示例:
如果要繪制向上偏移 20 像素的陰影,則不需要設置 shadowOffsetX,而是設置 shadowOffsetY 屬性,正值為向下偏移,負值為向上偏移:
var can = document.getElementById("mycanvas");
var ctx = can.getContext("2d");
ctx.shadowOffsetY = -20;
ctx.shadowBlur = 10;
ctx.shadowColor="rgba(0, 0, 0, 0.7)"; // 設置透明度
ctx.fillStyle = "pink"; // 填充顏色
ctx.fillRect(50, 50, 150, 70);
在瀏覽器中的演示效果:
可以看到這張截圖中,矩形的陰影顏色要比上面示例中淡一點。這是因為我們在給陰影設置顏色時,指定了一個透明度,用到了 rgba() 函數,函數中第四個參數用于設置透明度,值為 0~1 之間的小數,0表示完全透明,1表示不透明。
示例:
給四個邊設置陰影:
var can = document.getElementById("mycanvas");
var ctx = can.getContext("2d");
ctx.shadowBlur = 10;
ctx.shadowColor="rgba(0, 0, 0, 0.7)"; // 設置透明度
ctx.fillStyle = "pink"; // 填充顏色
ctx.fillRect(50, 50, 150, 70);
在瀏覽器中的演示效果:
在實際應用中,其實我們會經常用到陰影,例如給導航欄添加陰影、給按鈕添加陰影、給圖片添加陰影等,這樣看上去就會更立體一些,增加層次感。
了解更多可查看鏈接:https://www.9xkd.com/
置陰影的四個參數:shadowOffsetX、shadowOffsetY、shadowBlur、shadowColor
解釋如下:
shadowOffsetX和shadowOffsetY值可以為正或者負,負值將會在左側和上方創建陰影,反之將會在底部和右側創建。
shadowBlur:設置陰影模糊效果的程度
shadowColor:設置陰影顏色
完整實例如下:
天我學到一款非常炫酷的HTML5/CSS3陰影文字特效,一共有9組不同的樣式,這9組文字中,除了有不同的字體外,每一組的文字陰影和文字放光顏色都不同,看起來都十分漂亮,遺憾的是,中文并沒有那么漂亮的字體了。在頁面的字體設計中,可以拿出來玩玩,絕對很炫的。
效果圖,有點偏差
大家可以在下面分享自己學習的經驗,謝謝!!!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。