html 文字悬停翻转,html5+TweenMax.js鼠标悬停文字翻转动画特效

8种动画效果十分流畅的html5+TweenMax.js鼠标悬停文字翻转动画特效,支持英文字母和中文汉字。

142042b7597be9c39cab98a05cfdb15a.png

查看演示

下载资源:

14

次 下载资源

下载积分:

20

积分

js代码

const letterWrapClass = 'letter-wrap';

const letterWrapElements = document.getElementsByClassName(letterWrapClass);

[...letterWrapElements].forEach(el => {

letterWrap(el, letterWrapClass);

letterAnimation(el, letterWrapClass);

});

function letterWrap(el, cls) {

const words = el.textContent.split(' ');

const letters = [];

cls = cls || 'letter-wrap'

words.forEach(word => {

let html = '';

for (var letter in word) {

html += `

${word[letter]}

`;

};

let wrappedWords = `${html}`;

letters.push(wrappedWords);

});

return el.innerHTML = letters.join(' ');

}

function letterAnimation(el, cls) {

const tl = new TimelineMax({ paused: true });

const characters = el.querySelectorAll(`.${cls}__char-inner`);

const duration = el.hasAttribute('data-duration') ? el.dataset.duration : 0.3;

const stagger = el.hasAttribute('data-stagger') ? el.dataset.stagger : 0.03;

el.animation = tl.staggerTo(characters, duration, {

y: '-100%',

ease: Power4.easeOut

}, stagger);

el.addEventListener('mouseenter', (event) => event.currentTarget.animation.play());

el.addEventListener('mouseout', (event) => el.animation.reverse());

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值