【CSS帧动画】便捷实现方式

CSS帧动画简便实现

本文根据慕课网课程总结而成

JS+CSS3实现“粽情端午

1.获取DOM对象

var g =function(id){
        return document.getElementById(id);
    }

此后给元素设id如:

2.时间轴对象构造器

    var TimeLine = function(){
        this.order = [];//动画序列
        this.add= function(timeout,func,log){
            this.order.push({
                timeout:timeout,
                func:func,
                log:log
            })
        }
        this.start = function(ff){
            for(s in this.order){
                (function(me){
                    var fn=me.func;
                    var timeout=me.timeout;
                    var log =me.log;
                    Timeout = Math.max(timeout-ff,0);

                    setTimeout(fn,timeout);
                    setTimeout(function(){
                        console.log('time->',timeout,'log->',log);
                    })
                })(this.order[s]);
            }
        }
    }

初始化场景

    var s1 = new TimeLine();

3.设定的class制作动画

通过变换时间来控制帧动画

s1.add(1,function(){
        g('c_zongzi_box').className='c_zongzi_box';
        g('text').className='text text_in';
    })
    
s1.add(100,function(){
        //变换类名
    })
    
s2.add(3000,function(){
        s3.start();
        //第3秒时s3场景启动
    })
    
s3.add(5000,function(){
       s3.start();
       //循环s3场景
    });  

4.预加载图片

    var imgs=['img/zzr_2.png','img/zzr_3.png','img/zzr_4.png'];
    var imgs_onload = function(){
        imgs.pop();
        //删除最后的元素并返回
        //即先加载后面的图片
        if(imgs.length == 0){
            s1.start()
        //加载完成后开始动画    
        }
    }
    for(s in imgs){
        var img=new Image;
        img.onload = imgs_onload;
        img.src= imgs[s];
    }

5.轻度元素抖动

@keyframes rock{
        0%{transform:rorate(0deg)}
        10%{transfrom:rorate(3deg)}
        20%{transform:rorate(-3deg)}
        30%{transform:rotate(2deg)}
        40%{transform:rotate(-2deg)}
        50%{transform:rotate(1deg)}
        60%{transform:rotate(-1deg)}
        70%{transform:rotate(0deg)}
        100%{transform:rotate(0deg)}
}

你可能感兴趣的:(【CSS帧动画】便捷实现方式)