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>
时间: 2024-12-23 05:35:42

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

js判断图片加载完成

<!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <img id="mainPic" src="http://img1c.xgo-img

nginx实现动态分离,解决css和js等图片加载问题

改帖专门为使用nginx,通过nginx把请求转发到web服务器再返回客户端的时候,解决css和js和图片加载不出来的问题. 如果没安装nginx,请访问一下地址进行安装 <a href="http://www.cnblogs.com/sz-jack/p/5200283.html">http://www.cnblogs.com/sz-jack/p/5200283.html</a>

js判断图片加载完成后获取图片实际宽高

通常,我们会用jq的.width()/.height()方法获取图片的宽度/高度或者用js的.offsetwidth/.offsetheight方法来获取图片的宽度/高度,但这些方法在我们通过样式设置了图片的宽高后获取的就不是图片的实际宽高,这显然在有些时候不是我们想要的结果,那么有没有一种方法来获取这样的实际宽高呢?答案是有的.下面的代码就能解决这样的问题: <img src="01.jpg" id="test" width="250px"

图片加载js类库

Picturefill Picturefill.WP插件利用picturefill.js脚本展示Responsive图片,即根据视口宽度选择尺寸合适的图片加载,节省带宽,提高网站载入速度.例如用户用手机访问站点,该插件会选择适合手机尺寸的图片(如缩略图)加载,不会加载完整尺寸图片. 使用方法 没有选项,无需任何设置,下载插件激活,网站文章中的所有图片就会变成Responsive图片,若是retina显示屏,则加载retina图片.

分享JQuery动画插件Velocity.js的六种列表加载特效

分享JQuery动画插件Velocity.js的六种列表加载特效.在这款实例中给中六种不同的列表加载效果.分别为从上飞入.从右侧飞入.从左侧飞入.和渐显.一起看下效果图: 在线预览   源码下载 实现的代码. html代码: <h1> Velocity.js <i>slice + sequence</i></h1> <pre>Only anim X number with FX#1, animate Y number with FX#2 etc

html中的图片、css、js等路径加载问题

网页文件的存取路径有3种:物理路径.绝对路径和相对路径. 物理路径就是你的文件放在主机上的具体位置,例如:D:\\image\\1.jpg 这种格式,该方法可以很快确定出你的文件,但是在网页显示路径基本很少用. 绝对路径是以网站的根目录(www)作为起始点,某文件在该项目中具体位置信息.比如你的网站放在 /var/www 中,那么 /var/www 就是你的根目录.如果文件 head.jpg 放在该目录的 image 里,那么 head.jpg 的路径信息就是 /image/head.jpg.但

js 图片加载失败处理方法

在项目中不可避免会用到图片,尤其是列表,有时候图片会加载失败:这样就会显示一个很难看的坏图片缩略图:下面介绍两种方法,解决这个问题: 1.如果在你的项目中有引入jQuery插件,你可以使用error([[data],fn])这个函数: $("img").error(function(){ //当图片加载失败时,你要进行的操作 //$(this).attr('src','images/no_pic.jpg'); }); 2.如果项目中没有jQuery这样的插件,可以使用HTML的DOM事

js中预加载图片

由于网页的一些图片加载都需要很长时间,所以为了缓解图片加载慢的问题,页面可以先预加载图片,代码如下: /*预加载图片*/var imgList = []; var imgArr = ["bg02.gif","video_btm.jpg"]; for(var i=0;i<imgArr.length;i++){ var img = new Image(); img.src = imgArr[i]; imgList.push(img); }

页面加载和图片加载loading

准备放假了!也是闲着了 ,就来整理之前学到或用到的一下知识点和使用内容,这次记录的是关于加载的友好性loading!!!这里记录一下两种加载方法 1.页面加载的方法,它需要用到js里面两个方法 document.onreadystatechange = function(){} document.readyState//有两个值 interactive//加载中 complete//加载完成 两个方法同时使用 document.onreadystatechange = function(){ i