HTML5技术

html5 canvas用动画的形式装载图像 - 丿伊枫

字号+ 作者:H5之家 来源:H5之家 2016-03-11 15:56 我要评论( )

本示例使用HTML5的canvas标签和Javascript脚本,简单的编写了装载图片效果, 请使用支持HTML5的浏览器预览效果: 下图为以逐渐横向栅格的效果图 html部分: html5 装载图片从左到右从中央到左右两边以逐渐横向栅格 JavaScript部分: canvas = document.getEl

本示例使用HTML5的canvas标签和Javascript脚本,简单的编写了装载图片效果, 请使用支持HTML5的浏览器预览效果:

下图为以逐渐横向栅格的效果图

 

 

html部分:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>html5 装载图片</title>
</head>
<body>
<button onclick="drawImg1()">从左到右</button>
<button onclick="drawImg2()">从中央到左右两边</button>
<button onclick="drawImg3()">以逐渐横向栅格</button>
<hr/>
<canvas class="canvas" id="canvas" width="600" height="300"></canvas>
</body>
</html>

JavaScript部分:

  //初始化
    var canvas = document.getElementById("canvas"),
        context = canvas.getContext("2d"),
        image = new Image();
        image.src = "img/test.jpg";  

    //从左到右加载方法
    function drawImg1(){
        var drawWidth = 0,
            interval = setInterval(function(){
                context.drawImage(image, 0, 0, drawWidth, image.height, 0, 0, drawWidth, image.height);
                drawWidth += 20;
                if(drawWidth > canvas.width) clearInterval(interval);
            },100);
    }

    //从中央向左右两边拉开加载方法
    function drawImg2(){
        var drawWidth = 0,
            drawLeft = canvas.width/2,
            interval = setInterval(function(){
                context.drawImage(image, drawLeft, 0, drawWidth, image.height, drawLeft, 0, drawWidth, image.height);
                drawWidth += 20;
                drawLeft -= 10;
                if(drawLeft < 0) clearInterval(interval);
            },100);
    }
    
    //以逐渐横向栅格加载方法
    function drawImg3(){
        var drawWidth = 0,
            spaceWidth = canvas.width/20,  //10指分割的块数
            interval = setInterval(function(){
                for(var i = 0;i<20;i++){
                    context.drawImage(image, i*spaceWidth, 0, drawWidth, image.height, i*spaceWidth, 0, drawWidth, image.height);
                }
                drawWidth += 5;
                if(drawWidth > spaceWidth) clearInterval(interval);
            },100);
    }

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    2017-05-02 11:02

  • HTML5 进阶系列:indexedDB 数据库 - _林鑫

    HTML5 进阶系列:indexedDB 数据库 - _林鑫

    2017-04-27 14:02

  • HTML5 高级系列:web Storage - _林鑫

    HTML5 高级系列:web Storage - _林鑫

    2017-04-27 14:01

  • HTML5和CSS3 - 奔跑在起跑线佼佼者

    HTML5和CSS3 - 奔跑在起跑线佼佼者

    2017-04-20 13:00

网友点评