html用序列图做动画 (jquery替换图片版/jquery一次添加所有图片依次显示版/canvas版(最流畅))

html+jquery+jquery.imgpreload做序列图

     找啊找啊找啊找啊找啊找啊找了半天(从各种网站上找资料费了半天劲)才找到的, 然后拼拼凑凑弄出来的序列图播放, 网上的资料太不负责任了, 简单的功能非不写全, 还没注释,功能也实现不了, 我弄出来给大家分下下
说明:
     只针对多张png组成的序列图, -拼凑为动画.我的资源里有免费的jquery.imgpreload.min.js.请随意下载.
资源:
     jpg没透明背景, png有透明背景但占用内存大,自己选择
在这里插入图片描述
jquery版本不限
在这里插入图片描述
jQuery替换图片版(加载略慢, 展示略卡):

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
</head>
<body>
	<img class="chuansuo" />
	<script type="text/javascript" src="./static/jquery.1.1.3.min.js"></script>
	<script type="text/javascript" src="./static/jquery.imgpreload.min.js"></script>
	<script type="text/javascript">
		var load_img = [];
		var imgIdent = 0;
		var interNum = 0;
		function prefixInteger(num, length) {
			return ( "0000000000000000" + num ).substr( 0,length );
		}
		for(k=0;k<=306;k++){
			imgIdent = String(k);
			let identLength = 5-(imgIdent.length);
			let ident = prefixInteger(k,identLength)+k;
			// console.log(identLength,ident)
			load_img.push( './images/qi/qi_'+ident+'.png' );
		}
		// console.log(load_img)
		jQuery.imgpreload(load_img, {
			all: function() {

			}
		});
	    setInterval(function(){
	    	interNum++;
			$('.chuansuo').attr('src',load_img[interNum]);
			if(interNum>=306){
				interNum = 0;
			}
	    },50)
	</script>
</body>
</html>

jQuery添加所有图片版(加载超慢, 展示稍微不卡):

 window.sequence01 = {
            load_img:[],
            imgIdent:0,
            interNum:0,
            animateStart:null,
            str:null
        }
        window.sequence02 = {
            load_img:[],
            imgIdent:0,
            interNum:0,
            timer:null,
            str:"",
            changeBg:true,
            q1animate:true,
            titleanimate:true,
        }
        window.sequence03 = {
            load_img:[],
            imgIdent:0,
            interNum:0,
            str:null
        }
        function prefixInteger(num, length) {
            return ( "0000000000000000" + num ).substr( 0,length );
        }
        for(k=0;k<=306;k++){
            sequence01.imgIdent = String(k);
            let identLength = 5-(sequence01.imgIdent.length);
            let ident = prefixInteger(k,identLength)+k;
            sequence01.load_img.push(ident);
            sequence01.str +="<img class='"+ident+"' src='./images/qizixulie/qizhi_"+ident+".png'>";
        }
        $("#qi").append(sequence01.str)
        for(a=0;a<=179;a++){
            sequence02.imgIdent = String(a);
            let identLength = 5-(sequence02.imgIdent.length);
            let ident = prefixInteger(a,identLength)+a;
            sequence02.load_img.push(ident);
            sequence02.str +="<img class='"+ident+"' src='./images/222/firsttttt_"+ident+".jpg'>";
        }
        $("#bg").append(sequence02.str)
        for(b=183;b<=490;b++){
            sequence03.imgIdent = String(b);
            let identLength = 5-(sequence03.imgIdent.length);
            let ident = prefixInteger(b,identLength)+b;
            sequence03.load_img.push(ident);
            sequence03.str +="<img class='"+ident+"' src='./images/111/seconddddd_"+ident+".jpg'>";
        }
        $("#bg").append(sequence03.str)
        // jQuery.imgpreload(sequence01.load_img, {
        //     all: function() {
        //     }
        // });
        // jQuery.imgpreload(sequence02.load_img, {
        //     all: function() {
        //     }
        // });
        // jQuery.imgpreload(sequence03.load_img, {
        //     all: function() {
        //     }
        // });
        setInterval(function(){
            sequence01.interNum++;
            $("#qi img").eq(sequence01.load_img[sequence01.interNum]).show().siblings().hide();
            if(sequence01.interNum>=306){
                sequence01.interNum = 0;
            }
        },100)
        // setTimeout(function(){
            sequence02.timer = setInterval(function(){
                sequence02.interNum++;
                if(sequence02.changeBg){
                    // $('#bg').attr('src',sequence02.load_img[sequence02.interNum]);
                    $("#bg img").eq(sequence02.load_img[sequence02.interNum]).show().siblings().hide();
                    if (sequence02.q1animate) {
                        if(sequence02.interNum>=50){
                            $("#qi").animate({"top":"-5%"},10000)
                            sequence02.q1animate = false;
                        }
                    }
                    if (sequence02.titleanimate) {
                        if(sequence02.interNum>=130){
                            $(".u3d_title").fadeIn()
                            sequence02.titleanimate = false;
                        }
                    }
                    if(sequence02.interNum>=179){
                        sequence02.interNum = 0;
                        $(".getInto3d").fadeIn()
                        sequence02.changeBg = false;
                        // clearInterval(sequence02.timer)
                    }
                }else{
                    // $('#bg').attr('src',sequence03.load_img[sequence02.interNum]);
                    // console.log(sequence03.load_img[sequence02.interNum])
                    $("#bg img").eq(sequence03.load_img[sequence03.interNum]).show().siblings().hide();
                    if(sequence02.interNum>=320){
                        sequence02.interNum = 0
                    }
                }
            },60)
        // },3000)

Canvas版(加载最快,展示最快)

var mycanvas = document.getElementById('myCanvas')
		var ctx = mycanvas.getContext('2d')
		var screenW = window.screen.width;
		var screenH = window.screen.height;
		var cW = screenW;
		var cH = screenH;
			mycanvas.width = screenW;
			mycanvas.height = screenH;

		var mycanvasT = document.getElementById('myCanvasTwo')
		var ctxt = mycanvasT.getContext('2d')
		var cWt = screenW;
		var cHt = mycanvasT.height;
			mycanvasT.width = screenW;
			mycanvasT.height = screenH;

        window.sequence01 = {
            load_img:[],
            imgIdent:0,
            interNum:0,
            animateStart:null
        }
        window.sequence02 = {
            load_img:[],
            imgIdent:0,
            interNum:0,
            timer:null,
            changeBg:true,
            q1animate:true,
            titleanimate:true,
        }
        window.sequence03 = {
            load_img:[],
            imgIdent:0,
            interNum:0,
        }
        function prefixInteger(num, length) {
            return ( "0000000000000000" + num ).substr( 0,length );
        }
        for(k=0;k<=306;k++){
            sequence01.imgIdent = String(k);
            let identLength = 5-(sequence01.imgIdent.length);
            let ident = prefixInteger(k,identLength)+k;
            sequence01.load_img.push( './images/qizixulie/qizhi_'+ident+'.png' );
        }
        for(a=0;a<=305;a++){
            sequence02.imgIdent = String(a);
            let identLength = 5-(sequence02.imgIdent.length);
            let ident = prefixInteger(a,identLength)+a;
            sequence02.load_img.push( './images/firstl/first_'+ident+'.jpg' );
        }
        for(b=306;b<=611;b++){
            sequence03.imgIdent = String(b);
            let identLength = 5-(sequence03.imgIdent.length);
            let ident = prefixInteger(b,identLength)+b;
            sequence03.load_img.push( './images/secondl/second_'+ident+'.jpg' );
        }
        jQuery.imgpreload(sequence01.load_img, {
            all: function() {
            }
        });
        jQuery.imgpreload(sequence02.load_img, {
            all: function() {
            }
        });
        jQuery.imgpreload(sequence03.load_img, {
            all: function() {
            }
        });
        setInterval(function(){
            sequence01.interNum++;
            var img = new Image();
			img.src = sequence01.load_img[sequence01.interNum];
			img.onload = function(){
	            ctx.clearRect(0,0,cW,cH)
				ctx.drawImage(img,screenW-1000,-50,);
			}
            if(sequence01.interNum>=306){
                sequence01.interNum = 0;
            }
        },60)
        setInterval(function(){
            var bgImg = new Image();
			sequence02.interNum++;
            if(sequence02.changeBg){
                bgImg.src = sequence02.load_img[sequence02.interNum];
				bgImg.onload = function(){
		            ctxt.clearRect(0,0,cWt,cHt)
					ctxt.drawImage(bgImg,0,0,screenW,screenH);
				}
                if (sequence02.q1animate) {
                    if(sequence02.interNum>=50){
                        $("#myCanvas").animate({"top":"-5%"},10000)
                        sequence02.q1animate = false;
                    }
                }
                if (sequence02.titleanimate) {
                    if(sequence02.interNum>=130){
                        $(".u3d_title").fadeIn()
                        sequence02.titleanimate = false;
                        $(".getInto3d").delay(1000).fadeIn(3000,function(){
	                    	$(this).addClass("cur");
	                    })
                    }
                }
                if(sequence02.interNum>=306){
                    sequence02.interNum = 0;
                    // clearInterval()
                    sequence02.changeBg = false;
                }
            }else{
                bgImg.src = sequence03.load_img[sequence02.interNum];
				bgImg.onload = function(){
		            ctxt.clearRect(0,0,cW,cH);
					ctxt.drawImage(bgImg,0,0,screenW,screenH);
				}
                if(sequence02.interNum>=305){
                    sequence02.interNum = 0
                }
            }
        },60)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值