shshaw / Splitting

JavaScript microlibrary to split an element by words, characters, children and more, populated with CSS variables!
https://splitting.js.org
MIT License
1.69k stars 68 forks source link

How to adding class each line? #63

Open reksaandhika opened 4 years ago

reksaandhika commented 4 years ago

I tried use code from documentation, it's not even wrapping line, instead just splitting words. Any idea how to adding class each line so i can animating per-line not per-word, thank you.

i want something like this anyway: https://somethinggood.no/

gibbsy commented 4 years ago

The lines plugin will add the --line-index css variable to each word, which you can use in your animation. For example: span.word { transition-delay: calc(var(--line-index) * 250ms + 250ms); }

chigggsy commented 4 years ago

Having trouble with splitting by lines as well. The documentation is a little confusing (pretty new to coding). Do I still add data-splitting="words" to my <p> tag?

elebumm commented 3 years ago

I wish this functionality existed. At the moment it just provides a CSS variable, which I can't animate using GSAP.

chigggsy commented 3 years ago

@elebumm I've heard you can use the GSAP SplitText plugin. However it is part of their Club Greensock membership.

gibbsy commented 3 years ago

Not tested this but to animate with gsap have you tried something like:

let myTl = gsap.timeline()
let delay = 0.3 //delay between lines in seconds
let dur = 0.3 //duration of animation
let words = Array.from(document.getElementsByClassName('word'));
words.forEach(word => {
let lineNum = getComputedStyle(word).getPropertyValue('--line-index');
myTl.to(word, dur, { y:"+=10px", ease: "Power2.EaseOut" }, lineNum*delay)
})