canvas移动端常用技巧图片loading

将图片加载在canvas

html:

<canvas >
Your browser does not support the canvas element.
</canvas>

js:

canvas移动端常用技巧图片loading
<script type="text/javascript">

var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
var img=new Image()
img.src="flower.png"
cxt.drawImage(img,0,0);

</script>
canvas移动端常用技巧图片loading

移动端图片loading实例

需求:需要给一个列表中的图片添加加载效果

html

canvas移动端常用技巧图片loading
<section class="productul" >
     <ul>
         <li>
            <a href="#">
             <div class="triangle-topleft"></div>
             <span class="shuxing" data_url="productinfo.html">专属</span>
             <div class="leftimages fl"><canvas data-src="images/product/product1.png" ></canvas></div>
             <div class="productcontent fr">
                 <p class="ptitle pl10">标题</p>
                  <p class="pdes pl10">简介这里简介这里简介这里简介这里简介这里简介这里简介这里简介介这里简介</p>
                  <p class="pprice pl10">价格:<span class="green">¥5000</span></p>
             </div>
           </a>
         </li>
     </ul>    
</section>
canvas移动端常用技巧图片loading

重点css

img{100px;birder:0;}
canvas{100px;min-height:100px;background:#fff url("../images/loading.gif") center center no-repeat; background-size:15px auto; }

js

canvas移动端常用技巧图片loading

            //通过id,获取页面中所有的canvas标签

           var imglength = $("#productul").find("canvas").length;

            if (imglength > 0) {

                //each遍历,获取加载图片地址

                $("#productul").find("canvas").each(function () {

                    var imgSrc = $(this).data("src");

                    var imageObj = new Image();

                    //imageObj.canvs=当前图片对象

                    imageObj.canvs = $(this)[0];

                    //绘制到2d平面

                    var cvs = imageObj.canvs.getContext('2d');

                    //有的图片话

                    if (cvs) {

                        //事件

                        imageObj.onload = function () {

                            imageObj.canvs.width = this.width;

                            imageObj.canvs.height = this.height;

                            cvs.drawImage(this, 0, 0);

                            // $(imageObj.canvs).css("background-image", "none");

                        }

                        imageObj.src = imgSrc;  //图片路径

                    }

                })

            }

      }