量多的话,推荐JS库 Modernizr

TransitonEnd

function transitionEnd(){
    var transitions = {
        'transition'       : 'transitionend',
        'WebkitTransition' : 'webkitTransitionEnd'
    };

    for(var t in transitions){
        if(document.documentElement.style[t] !== undefined){
            return transitions[t];
        }
    }
}

页面是否可见

let vChange = '';
let vState = '';

if (typeof document.visibilityState != 'undefined') {
    vChange = 'visibilitychange';
    vState = 'visibilityState';
} else if (typeof document.webkitVisibilityState != 'undefined') {
    vChange = 'webkitvisibilitychange';
    vState = 'webkitVisibilityState';
}

if (vChange) {
    document.addEventListener(vChange, function() {
        if (document[vState] == 'visible') {
            setTimeout(function() {
                // 代码
                console.log('页面可见' + Date.now())
            }, 100)
        }
    })
}