js实现图片加载特效(从左到右,百叶窗,从中间到两边)

简介:

/*
  网上百度的,感觉”从中间到两边“的效果写的不是很好,改了一下,感觉可以了!
*/
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
        var image;
        var intervalId1;
        var intervalId2;
        var intervalId3;
        var drawW1 = 0;
        var canvas;
        var context;
        var drawLeft;
 
        var baiyechuangItemW ;
        function init(){
            image = new Image();
            image.src="eg_mouse.jpg";
            canvas = document.getElementById("canvas1");
            context = canvas.getContext("2d");
            drawLeft = image.width/2;
        }
         
        function startLeftToRight(){
            clearInterval(intervalId1);
            context.clearRect(0,0,image.width,image.height);
            intervalId1 = setInterval("leftToRight();",50);
        }
         
        function leftToRight(){
            context.drawImage(image,0,0,drawW1, image.height,0,0,drawW1,image.height);
            drawW1 += 2;
            if(drawW1>image.width){
                drawW1 =0;
                clearInterval(intervalId1);
            }
        }
          
        function centerToOuter(){
            drawW1 += 2;
       //drawLeft-drawW1/2是左端点,drawLeft是中间, drawLeft+drawW1/2是右端点
            context.drawImage(image,drawLeft-drawW1/2,0,drawW1,image.height,drawLeft-drawW1/2,0,drawW1,image.height);
            if(drawW1>drawLeft*2){
                drawW1 = 0;
                clearInterval(intervalId2);
            }
        }
         
        function startCenterToOuter(){
            clearInterval(intervalId2);
            context.clearRect(0,0,image.width,image.height);
            intervalId2 = setInterval("centerToOuter();",50);
        }
 
        function baiyechuang(){
            for(i=0;i<10;i++){
                context.drawImage(image,baiyechuangItemW*i,0,drawW1,image.height,baiyechuangItemW*i,0,drawW1,image.height);
            }
            drawW1 += 0.2;
            if(drawW1>baiyechuangItemW){
                clearInterval(intervalId3);
            }
        }
         
        function startBaiyechuang(){
            drawW1=0;
            baiyechuangItemW = image.width/10.0;
            clearInterval(intervalId3);
            context.clearRect(0,0,image.width,image.height);
            intervalId3 = setInterval("baiyechuang();", 50);
        }
         
    </script>
  </head>
  <body onload="init();">
      <h1><input type="button" value="从左到右装载图片"  onclick="startLeftToRight();"/></h1>
      <h1><input type="button" value=“从中间到两边加载图片"  onclick="startCenterToOuter();"/></h1>
      <h1><input type="button" value="百叶窗方式装载图片"  onclick="startBaiyechuang();"/></h1>
       
      <div>
          <canvas id="canvas1" width="400px" height="400px"></canvas>
      </div>
  </body>
</html>

目录
相关文章
|
移动开发 前端开发 JavaScript
js 简单图片取色器
基于 JavaScript(js) 的简单的图片颜色识别
1225 0
js 简单图片取色器
|
3月前
|
JavaScript 前端开发
jquery酷炫的马赛克图片还原动画代码
jquery酷炫的马赛克图片还原动画代码,jquery马赛克图片动画,js酷炫图片代码,马赛克图片js还原效果,js图片分散汇聚效果素材
41 1
|
1月前
|
JavaScript
JS+CSS3点击粒子烟花动画js特效
JS+CSS3点击粒子烟花动画js特效
15 0
JS+CSS3点击粒子烟花动画js特效
|
3月前
|
移动开发 JavaScript 前端开发
分享33个JS滚动条特效&47个JS瀑布流特效,总有一款适合您
分享33个JS滚动条特效&47个JS瀑布流特效,总有一款适合您
27 0
|
3月前
|
移动开发 JavaScript 前端开发
分享111个JS图片切换特效,总有一款适合您
分享111个JS图片切换特效,总有一款适合您
49 2
|
8月前
|
JavaScript 前端开发
JS实现无缝隙跑马灯
JS实现无缝隙跑马灯
62 0
|
5月前
|
JavaScript
js打字机动画效果实现
js打字机动画效果实现
23 0
|
JavaScript
JS实现图片跟随鼠标进行浮动
JS实现图片跟随鼠标进行浮动
195 0
JS实现图片跟随鼠标进行浮动
|
前端开发 JavaScript 程序员
基于H5+css+JavaScript实现流光圆环加载特效页面
基于H5+css+JavaScript实现流光圆环加载特效页面
355 0
|
JavaScript 前端开发
JS实现百叶窗特效
👀每天实习一个小案例,编程能力才会突飞猛进。
100 0
JS实现百叶窗特效