SVG特效&canvas特效

简介:

SVG特效

这里写图片描述

<!DOCTYPE html>
<meta charset="utf-8">
<style>
    rect {
      fill: #fff;
      stroke: #000;
    }
</style>
<svg width="960" height="500">
    <defs>
        <clipPath id="clip-upper">
            <rect width="960" height="305" x="-480" y="-305"></rect>
        </clipPath>
        <clipPath id="clip-lower">
            <rect width="960" height="195" x="-480" y="0"></rect>
        </clipPath>
    </defs>
    <g clip-path="url(#clip-upper)" transform="translate(480,305)"></g>
    <g clip-path="url(#clip-lower)" transform="translate(480,305)"></g>
</svg>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>
    var width = 960,
        height = 500,
        triangleSize = 400,
        squareCount = 71,
        squareSize = 90,
        speed = .08;
    var square = d3.selectAll("g")
        .selectAll("g")
        .data(function(d, i) {
            return i ? [0, 1, 2] : [2, 0, 1];
        })
        .enter().append("g")
        .attr("transform", function(i) {
            return "rotate(" + (i * 120 + 60) + ")translate(0," + -triangleSize / Math.sqrt(12) + ")";
        })
        .selectAll("rect")
        .data(d3.range(squareCount))
        .enter().append("rect")
        .datum(function(i) {
            return i / squareCount;
        })
        .attr({
            width: squareSize,
            height: squareSize,
            x: -squareSize / 2,
            y: -squareSize / 2
        });
    d3.timer(function(elapsed) {
        square
            .attr("transform", function(t) {
                return "translate(" + (t - .5) * triangleSize + ",0)rotate(" + (t * 120 + elapsed * speed) + ")";
            });
    });
</script>

canvas特效

下载地址:http://download.csdn.net/detail/cometwo/9462522

这里写图片描述
这里写图片描述

滤镜

这里写图片描述
这里写图片描述

<!DOCTYPE html>
<html>

    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body style="background: black;">

        <canvas id="canvas" style="display:block;margin:60px auto;border:1px solid red;">
            您的浏览器尚不支持canvas
        </canvas>
        <input type="range" id="scale-range" min="0.5" max="3.0" step="0.01" value="1.0" style="display:block;margin:20px auto;width:500px" />

        <script>
            var canvas = document.getElementById("canvas")
                    var context = canvas.getContext("2d")
                    var slider = document.getElementById("scale-range")
                    var image = new Image()

                    window.onload = function(){

                        canvas.width = 900
                        canvas.height = 400

                        var scale = slider.value
                        image.src = "img-lg.jpg"
                        image.onload = function(){
                            drawImageByScale( scale )

            //                slider.onchange = function(){
            //                    scale = slider.value
            //                    drawImage( image , scale )
            //                }

                            slider.onmousemove = function(){
                                scale = slider.value
                                drawImageByScale( scale )
                            }
                        }


                    }

                    function drawImageByScale( scale ){

                        var imageWidth = 1152 * scale
                        var imageHeight = 768 * scale

                        //var sx = imageWidth / 2 - canvas.width / 2
                        //var sy = imageHeight / 2 - canvas.height / 2

                        //context.drawImage( image , sx , sy , canvas.width , canvas.height , 0 , 0 , canvas.width , canvas.height )
                        x = canvas.width /2 - imageWidth / 2
                        y = canvas.height / 2 - imageHeight / 2

                        context.clearRect( 0 , 0 , canvas.width , canvas.height )
                        context.drawImage( image , x , y , imageWidth , imageHeight )
                    }
        </script>
    </body>

</html>
目录
相关文章
|
2月前
|
前端开发 JavaScript API
【HTML】SVG实现炫酷的描边动画
今天闲来无事,看到Antfu大佬的个性签名,觉得还是非常炫酷的,于是也想要搞一个自己的个性签名用来装饰自己的门面,不过由于手写的签名太丑了,遂放弃。于是尝试理解原理,深入研究此等密法,终于小有所成,发现原来是描边动画,于是记载如下,方便日后借鉴。
45 3
|
8月前
|
XML 移动开发 前端开发
Canvas 和 SVG 绘图的区别
Canvas 和 SVG 绘图的区别
77 0
|
8月前
SVG SMIL 动画(基本动画 、变换动画)
SVG SMIL 动画(基本动画 、变换动画)
31 0
|
前端开发
你可以学会的svg动画
你可以学会的svg动画
|
前端开发
CSS 轻松制作 SVG 动画
如果从未在前端使用过 SVG,那么就错过了很多改善性体验,如果不知道如何使用 SVG 制作动画,那么将错过更多。本文开始制作第一个 SVG 图形,为其添加动画。
611 0
CSS 轻松制作 SVG 动画
|
图形学
Unity里实现Sprite Renderer的阴影
将以下脚本附到产生Shadow的物体上: voidOnEnable(){ GetComponent().receiveShadows =true; GetComponent().castShadows =true; } 但是这是不够的,还需要Shader帮忙,下面的Shader请放到产生Shado...
3056 0
|
移动开发 HTML5
|
Web App开发 前端开发 JavaScript
使用WebGL + Three.js制作动画场景
使用WebGL + Three.js制作动画场景 3D图像,技术,打造产品,还有互联网:这些只是我爱好的一小部分。 现在,感谢WebGL的出现-一个新的JavaScriptAPI,它可以在不依赖任何插件的情况下渲染浏览器中的3D图像-这让3D渲染操作变得异常简单。
2092 0
|
XML 前端开发 数据格式
|
定位技术 数据安全/隐私保护
使用svgdeveloper 和 svg-edit 绘制svg地图
目录: 1. 描述 2. 准备工作 3. 去除地图模板上的水印(可跳过) 4. 方法一、SVGDeveloper 5. 方法二、SVG-Edit 1. 描述编辑   有的时候我们需要自定义地图,本文提供基本的基于SVG的矢量图制作教程;   2.
2885 0

热门文章

最新文章