canvas内的字体实现阴影效果

api介绍

可以通过几种全局context属性来控制阴影。
shadowColor任何CSS中的颜色值。可以使用透明度(alpha)
ShadowOffsetX像素值。值为正数,向右移动阴影;值为负数,向左移动阴影
shadowOffsetY像素值。值为正数,向下移动阴影;值为负数,向上移动阴影
shadowBlur高斯模糊值。值越大,阴影边缘越模糊

案例代码

这里写图片描述

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="Generator" content="EditPlus?">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <title>练习</title>
    <style>
        #myCanvas {
            background-color:#00ffff
        }
    </style>
</head>
<body>
<canvas id="myCanvas" width="1072" height="200">您的浏览器不支持canvas!</canvas>
<script type="text/javascript">
    var canvas=document.getElementById('myCanvas');
    var context = canvas.getContext('2d');
    // 设置文字阴影的颜色为黑色,透明度为20%
    context.shadowColor = 'rgba(0, 0, 0, 0.2)';
    // 将阴影向右移动15px,向上移动10px
    context.shadowOffsetX = 2;
    context.shadowOffsetY = 2;
    // 轻微模糊阴影
    context.shadowBlur = 2;
    // 字号为60px,字体为impact
    context.font = "100px 楷体";
    // 将文本填充为棕色
    context.fillStyle = '#ffffff';
    // 将文本设为居中对齐
    context.textAlign = 'center';
    context.textBaseline='middle';
    // 在canvas顶部中央的位置,以大字体的形式显示文本
    context.fillText('现在学习也不晚', 536, 100);
    context.restore();
</script>
</body>
</script>
</html>
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
可以使用HTML5中的Canvas元素和JavaScript来实现写字动画效果。具体实现步骤如下: 1. 创建一个Canvas元素,并设置它的宽度和高度。 2. 使用JavaScript获取Canvas的上下文对象。 3. 设置字体、颜色、阴影等样式属性。 4. 使用Canvas的beginPath()方法开始绘制路径。 5. 使用Canvas的moveTo()和lineTo()方法绘制字母路径。 6. 使用Canvas的stroke()方法绘制路径。 7. 使用JavaScript的定时器函数setInterval()不断更新字母的位置,从而实现动画效果。 下面是一个简单的示例代码: HTML代码: ```html <canvas id="myCanvas" width="500" height="200"></canvas> ``` JavaScript代码: ```javascript // 获取Canvas元素的上下文对象 var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); // 设置字体属性 ctx.font = "80px Arial"; ctx.fillStyle = "red"; ctx.shadowColor = "black"; ctx.shadowBlur = 10; // 定义字母路径 ctx.beginPath(); ctx.moveTo(50, 100); ctx.lineTo(100, 50); ctx.lineTo(150, 100); ctx.lineTo(200, 50); ctx.lineTo(250, 100); ctx.lineTo(250, 150); ctx.stroke(); // 定义定时器函数来更新字母位置 var x = 50; var y = 100; var dx = 5; var dy = -5; setInterval(function() { ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.beginPath(); ctx.moveTo(x, y); ctx.lineTo(x+50, y-50); ctx.lineTo(x+100, y); ctx.lineTo(x+150, y-50); ctx.lineTo(x+200, y); ctx.lineTo(x+200, y+50); ctx.stroke(); x += dx; y += dy; if (x > canvas.width-200 || x < 0) { dx = -dx; } if (y > canvas.height-50 || y < 0) { dy = -dy; } }, 10); ``` 这段代码实现了一个不断移动的字母路径,可以根据需要修改字母的形状和动画效果
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值