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>
相关文章
|
8月前
|
前端开发
Canvas绘画之倒三角形,渐变色效果源码
Canvas绘画之倒三角形,渐变色效果源码
|
8月前
|
前端开发
|
10月前
|
前端开发
css样式字体、文本、背景属性,盒子模型详解,轻松调教出优美的字体和网页背景色
css样式字体、文本、背景属性,盒子模型详解,轻松调教出优美的字体和网页背景色
115 2
|
10月前
|
算法 前端开发
如何用SVG画一个特定边框(下)
如何用SVG画一个特定边框(下)
96 3
|
10月前
|
前端开发
如何用SVG画一个特定边框(上)
如何用SVG画一个特定边框(上)
114 1
|
10月前
|
Web App开发 前端开发
canvas详解02-样式和颜色控制
canvas详解02-样式和颜色控制
168 1
CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
169 0
|
前端开发 JavaScript 容器
CSS(二)——Flex布局 边框 渐变 过渡 动画
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。 项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
385 0
CSS(二)——Flex布局 边框 渐变 过渡 动画
|
JSON 前端开发 JavaScript
Threejs引入字体,实现3D文字,Canvas画布作为纹理贴图实现滚动字幕
Threejs引入字体,实现3D文字,Canvas画布作为纹理贴图实现滚动字幕
1033 0