首页前端开发HTML使用HTML5 Canvas绘制阴影效果的方法

使用HTML5 Canvas绘制阴影效果的方法

时间2024-01-23 13:49:22发布访客分类HTML浏览809
导读:收集整理的这篇文章主要介绍了使用HTML5 Canvas绘制阴影效果的方法,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要介绍了使用HTML5 canvas绘制阴影效果的方法,包括一个3D拉影+边缘模糊效果文字的编写例子,在阴...
收集整理的这篇文章主要介绍了使用HTML5 Canvas绘制阴影效果的方法,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要介绍了使用HTML5 canvas绘制阴影效果的方法,包括一个3D拉影+边缘模糊效果文字的编写例子,在阴影效果的利用上进一步深入,需要的朋友可以参考下

创建阴影效果需要操作以下4个属性:

1.context.shadowColor:阴影颜色。
2.context.shadowOffsetX:阴影x轴位移。正值向右,负值向左。
3.context.shadowOffsetY:阴影y轴位移。正值向下,负值向上。
4.context.shadowBlur:阴影模糊滤镜。数据越大,扩散程度越大。
这四个属性只要设置了第一个和剩下三个中的任意一个就有阴影效果。不过通常情况下,四个属性都要设置。

例如,创建一个向右下方位移各5px的红色阴影,模糊2px,可以这样写。

context.shadowColor = "red";
       context.shadowOffsetX = 5;
       context.shadowOffsetY = 5;
       context.shadowBlur= 2;
    

需要注意的是,这里的阴影同其他属性设置一样,都是基于状态的设置。因此,如果只想为某一个对象应用阴影而不是全局阴影,需要在下次绘制前重置阴影的这四个属性。
运行结果:


阴影文字:

只要设置shadowOffsetX与shadowOffsetY的值,当值都正数时,阴影相对文字的右下

方偏移。当值都为负数时,阴影相对文字的左上方偏移。

3D拉影效果:

在同一位置不断的重复绘制文字同时改变shadowOffsetX、shadowOffsetY、shadowBlur

的值,从小到大不断偏移不断增加,透明度也不断增加。就得到了拉影效果文字。

边缘模糊效果文字:

在3D拉影效果的基础上在四个方向重复,就得到了边缘羽化的文字效果。

运行效果:

程序代码:

!DOCTYPE htML>
         html>
         head>
         meta http-equiv="X-UA-Compatible" content="chrome=IE8">
         meta http-equiv="Content-type" content="text/html;
    charset=UTF-8">
         tITle>
    Canvas Clip Demo/title>
         link href="default.css" rel="stylesheet" />
             script>
                 VAR ctx = null;
     // global variable 2d context           var imageTexture = null;
             window.onload = function() {
                     var canvas = document.getElementById("text_canvas");
                     console.LOG(canvas.parentNode.clientWidth);
                     canvas.width = canvas.parentNode.clientWidth;
                     canvas.height = canvas.parentNode.clientHeight;
                 if (!canvas.getContext) {
                         console.log("Canvas not supported. Please install a HTML5 compatible browser.");
                         return;
                 }
                     var context = canvas.getContext('2d');
                     // section one - shadow and blur               context.fillStyle="black";
                     context.fillRect(0, 0, canvas.width, canvas.height/4);
                     context.font = '60pt Calibri';
                     context.shadowColor = "white";
                     context.shadowOffsetX = 0;
                     context.shadowOffsetY = 0;
                     context.shadowBlur = 20;
                     context.fillText("Blur Canvas", 40, 80);
                     context.strokeStyle = "RGBA(0, 255, 0, 1)";
                     context.lineWidth = 2;
                     context.strokeText("Blur Canvas", 40, 80);
                     // section two - shadow font               var hh = canvas.height/4;
                     context.fillStyle="white";
                     context.fillRect(0, hh, canvas.width, canvas.height/4);
                     context.font = '60pt Calibri';
                     context.shadowColor = "RGBA(127,127,127,1)";
                     context.shadowOffsetX = 3;
                     context.shadowOffsetY = 3;
                     context.shadowBlur = 0;
                     context.fillStyle = "RGBA(0, 0, 0, 0.8)";
                     context.fillText("Blur Canvas", 40, 80+hh);
                     // section three - down shadow effect               var hh = canvas.height/4 + hh;
                     context.fillStyle="black";
                     context.fillRect(0, hh, canvas.width, canvas.height/4);
                     for(var i = 0;
     i  10;
 i++)                 {
                         context.shadowColor = "RGBA(255, 255, 255," + ((10-i)/10) + ")";
                         context.shadowOffsetX = i*2;
                         context.shadowOffsetY = i*2;
                         context.shadowBlur = i*2;
                         context.fillStyle = "RGBA(127, 127, 127, 1)";
                         context.fillText("Blur Canvas", 40, 80+hh);
                 }
                     // section four -  fade effect               var hh = canvas.height/4 + hh;
                     context.fillStyle="green";
                     context.fillRect(0, hh, canvas.width, canvas.height/4);
                     for(var i = 0;
     i  10;
 i++)                 {
                         context.shadowColor = "RGBA(255, 255, 255," + ((10-i)/10) + ")";
                         context.shadowOffsetX = 0;
                         context.shadowOffsetY = -i*2;
                         context.shadowBlur = i*2;
                         context.fillStyle = "RGBA(127, 127, 127, 1)";
                         context.fillText("Blur Canvas", 40, 80+hh);
                 }
                     for(var i = 0;
     i  10;
 i++)                 {
                         context.shadowColor = "RGBA(255, 255, 255," + ((10-i)/10) + ")";
                         context.shadowOffsetX = 0;
                         context.shadowOffsetY = i*2;
                         context.shadowBlur = i*2;
                         context.fillStyle = "RGBA(127, 127, 127, 1)";
                         context.fillText("Blur Canvas", 40, 80+hh);
                 }
                     for(var i = 0;
     i  10;
 i++)                 {
                         context.shadowColor = "RGBA(255, 255, 255," + ((10-i)/10) + ")";
                         context.shadowOffsetX = i*2;
                         context.shadowOffsetY = 0;
                         context.shadowBlur = i*2;
                         context.fillStyle = "RGBA(127, 127, 127, 1)";
                         context.fillText("Blur Canvas", 40, 80+hh);
                 }
                     for(var i = 0;
     i  10;
 i++)                 {
                         context.shadowColor = "RGBA(255, 255, 255," + ((10-i)/10) + ")";
                         context.shadowOffsetX = -i*2;
                         context.shadowOffsetY = 0;
                         context.shadowBlur = i*2;
                         context.fillStyle = "RGBA(127, 127, 127, 1)";
                         context.fillText("Blur Canvas", 40, 80+hh);
                 }
             }
             /script>
         /head>
         body>
             h1>
    HTML5 Canvas Clip Demo - By Gloomy Fish/h1>
             PRe>
    Fill And Stroke Clip/pre>
             p id="my_painter">
                 canvas id="text_canvas">
    /canvas>
             /p>
         /body>
         /html>
    

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

html5 touch事件实现触屏页面上下滑动

在HTML5 Canvas中放入图片和保存为图片的方法

html5和js绘制图片到canvas的方法

以上就是使用HTML5 Canvas绘制阴影效果的方法的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: HTML5 Plus 实现手机APP拍照或相...下一篇:利用HTML5中的Canvas绘制笑脸的代...猜你在找的html5相关文章 关于移动端h5开发相关内容总结2022-05-17html5教程-学表单的第二天2018-12-10html5教程-HTML5浏览器支持2018-12-10html5教程-HTML5智能表单2018-12-10html5教程-微信H5使用resLoader实现加载页效果2018-12-10html5教程-day01-初级-JS0-热身运动JS入门教程2018-12-10html5教程-html5shiv.js和respond.min.js2018-12-10html5教程-不同浏览器对于html5 audio标签和音频格式的兼容性2018-12-10html5教程-使用Html5实现手风琴案例2018-12-10html5教程-html5笔记2018-12-10 其他相关热搜词更多phpjavapython程序员load

若转载请注明出处: 使用HTML5 Canvas绘制阴影效果的方法
本文地址: https://pptw.com/jishu/584269.html
关于HTML5和CSS3实现机器猫的代码 利用HTML5中的Canvas绘制笑脸的代码

游客 回复需填写必要信息