< Retour

blast

Installation

> blast.min.js

Blaster.js

import $ from 'jquery'
import './blast.min.js' // module retouché pour webpack

var letters = [];

const Blaster = {};

Blaster.animateLetters = function(titleId, i) {
    var i = i == undefined ? 0 : i;
    letters[titleId][i].classList.add('blast--in');
    
    if (i < letters[titleId].length - 1) {
            Blaster.animateLetters(titleId, i + 1);
    }
}

Blaster.addBlast = function(titleId) {
    letters[titleId] = [];
    $('#'+titleId).blast({ 
        delimiter: 'letter',
        customClass: titleId+'-letter' 
    });

    //document.getElementById(titleId).innerHTML = document.getElementById(titleId).innerHTML.replace(/-\?/g, " ?");

    setTimeout(()=>{
        letters[titleId] = Array.from(document.getElementsByClassName(titleId+'-letter'));
        letters[titleId].forEach(letter => {
            letter.innerHTML = ''+letter.textContent+'';
        });
    }, 50); 
}

export default Blaster;

CSS

.blast {
    overflow: hidden;
    display: inline-block;

    span {
        display: inline-block;
        transform: translate3d(0, 100%, 0) scaleY(1);
        opacity: 0;
    }

    &--in {
        span {
            opacity: 1;
            transition: .75s all ease;
            transform: translate3d(0,0,0) scaleY(1);
        }
    }
}