canvas元素的内发光效果

    我们知道使用CSS3可以实现阴影效果,box-shadow: 0px 0px 5px 5px black; 可以想象成是一个颜色为"black"的相同大小的阴影块在你要渲染的块的下面。
    前面两个0px 0px的意思是阴影块的左上角位置与要渲染的块的偏移,可以为负数,第一个5px表示阴影块的模糊程度,数字越大越模糊,第二个5px表示阴影块往外辐射的距离,如果再后面加上inset, 写成, box-shadow: 0px 0px 5px 5px black inset; 就是向里面发光的内发光效果。
    效果很炫,然而总是有些让人不爽的地方,当使用canvas画图片时(我的意思是画图片哦,不是直接在canvas上画画,而是用context.draw(image, 0, 0, w, h, 0, 0, w, h)这样的方法将图片画到canvas上)想要给这个canvas加上内发光效果的时候,如果直接给canvas加上上面这个css就看不到效果。这时候,
    有两个办法:
    1)适用于多数浏览器,但是带来页面显示的难题:
          用div套住canvas,然后让div内发光,将canvas的z-index设为-1.
          如:  
        <div id="ddd" style="box-shadow:0px 0px 20px 20px black inset; width:400px; height:300px; position:relative;">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Canvas是HTML5提供的一个绘图API,可以用来在网页上绘制图形、动画等。要在Canvas上绘制直线发光效果,可以通过以下步骤实现: 1. 创建Canvas元素:在HTML中创建一个Canvas元素,并设置其宽度和高度。 ```html <canvas id="myCanvas" width="500" height="500"></canvas> ``` 2. 获取Canvas上下文:使用JavaScript获取Canvas的上下文对象,以便后续进行绘制操作。 ```javascript var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); ``` 3. 绘制直线:使用上下文对象的`beginPath()`方法开始绘制路径,然后使用`moveTo()`方法设置起点坐标,再使用`lineTo()`方法设置终点坐标,最后使用`stroke()`方法绘制直线。 ```javascript ctx.beginPath(); ctx.moveTo(50, 50); // 设置起点坐标 ctx.lineTo(200, 200); // 设置终点坐标 ctx.stroke(); // 绘制直线 ``` 4. 添加发光效果:要给直线添加发光效果,可以使用`shadowBlur`和`shadowColor`属性来设置阴影的模糊程度和颜色。 ```javascript ctx.shadowBlur = 10; // 设置阴影的模糊程度 ctx.shadowColor = "blue"; // 设置阴影的颜色 ``` 完整的代码示例如下: ```html <!DOCTYPE html> <html> <head> <title>Canvas绘制直线发光</title> <style> canvas { border: 1px solid black; } </style> </head> <body> <canvas id="myCanvas" width="500" height="500"></canvas> <script> var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(200, 200); ctx.stroke(); ctx.shadowBlur = 10; ctx.shadowColor = "blue"; </script> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值