Canvas背景色绘画样式设计

简介: Canvas背景色绘画样式设计

源码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>渐变色文本和图案文本</title>
 
<style>
    body {
        background: #eeeeee;
    }
 
    #canvas {
        background: #ffffff;
        cursor: pointer;
        margin-left: 10px;
        margin-top: 10px;
        -webkit-box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
        -moz-box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
        box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
    }
 
    #controls {
        margin: 10px;
    }
</style>
</head>
 
<body>
<canvas id='canvas' width='950' height='520'>
    Canvas not supported
</canvas>
 
<script>
    'use strict';
 
    let canvas = document.getElementById('canvas'),
        context = canvas.getContext('2d'),
        image = new Image(),
        gradient = context.createLinearGradient(0,0,canvas.width,canvas.height),
        text = 'Canvas',
 
        //在图片加载之后创建一个'模式'
        pattern;
 
    //Function……
 
    /**
     * 画背景
     */
    let drawBackground=()=> {
 
            let STEP_Y = 12,
                TOP_MARGIN = STEP_Y * 4,
                LEFT_MARGIN = 35,
                i = context.canvas.height;
 
            context.save();
 
            context.strokeStyle = 'lightgray';
            context.lineWidth = 0.5;
 
            while (i > TOP_MARGIN) { // Draw horizontal lines from bottom up
                context.beginPath();
                context.moveTo(0, i);
                context.lineTo(context.canvas.width, i);
                context.stroke();
                i -= STEP_Y;
            }
 
            // Draw vertical line
            context.strokeStyle = 'rgba(100,0,0,0.3)';
            context.lineWidth = 1;
 
            context.beginPath();
            context.moveTo(LEFT_MARGIN, 0);
            context.lineTo(LEFT_MARGIN, context.canvas.height);
            context.stroke();
 
            context.restore();
 
    };
 
    /**
     * 画渐变文本
     */
    let drawGradientText=()=>{
        context.fillStyle=gradient;
        context.fillText(text, 65, 200);
        context.strokeText(text, 65, 200);
    };
 
    /**
     * 画图案文本
     */
    let drawPatternText = () => {
        context.fillStyle = pattern;
        context.fillText(text, 65, 450);
        context.strokeText(text, 65, 450);
    };
 
    //Event
 
    image.onload=()=>{
        pattern=context.createPattern(image,'repeat');
        drawPatternText();
    };
 
    //Init……
 
    //添加图案
    image.src = '../images/redball.png';
 
    context.font = '256px Palatino';
    context.strokeStyle = 'cornflowerblue';
 
    context.shadowOffsetX = 5;
    context.shadowOffsetY = 5;
    context.shadowBlur    = 10;
 
    //创建渐变
    gradient.addColorStop(0,'blue');
    gradient.addColorStop(0.25,'yellow');
    gradient.addColorStop(0.5, 'white');
    gradient.addColorStop(0.75, 'red');
    gradient.addColorStop(1.0,'blue');
 
    drawBackground();
    drawGradientText();
</script>
 
</body>
</html>
相关文章
|
4月前
|
前端开发
Canvas绘画之倒三角形,渐变色效果源码
Canvas绘画之倒三角形,渐变色效果源码
|
4月前
|
前端开发
|
6月前
|
前端开发
canvas详解04-绘制文字
canvas详解04-绘制文字
78 2
canvas详解04-绘制文字
|
6月前
|
Web App开发 前端开发
canvas详解02-样式和颜色控制
canvas详解02-样式和颜色控制
114 1
|
6月前
|
前端开发
使用CSS实现网格+渐变背景色的Web页面背景
使用CSS实现网格+渐变背景色的Web页面背景
84 0
|
前端开发
【前端切图】CSS文字渐变和背景渐变
【前端切图】CSS文字渐变和背景渐变
71 0
|
前端开发
css实现背景半透明文字不透明的效果
css实现背景半透明文字不透明的效果
48 0
|
前端开发
前端 SVG 与 Canvas 框架案例 (画线、矩形、箭头、文字 ....)
前端 SVG 与 Canvas 框架案例 (画线、矩形、箭头、文字 ....)
139 0
CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
132 0
|
前端开发 JavaScript
NaiveUI中看起来没啥用的组件(文字渐变)实现原来这么简单
用不到80行代码复原了NaiveUI中的渐变文字组件,内容不多,非常简单,小小娱乐一次。。。。。。。
381 0