Worked on animate.css with the history component

This commit is contained in:
Giovani
2019-04-13 21:43:37 -04:00
parent 36f412b524
commit 7255689782
8 changed files with 3536 additions and 3422 deletions

View File

@@ -2,17 +2,81 @@ import React, {Component} from 'react';
import './history.css';
class History extends Component {
constructor(props) {
super(props);
this.state = {
wasTimelineConatinerInView: [false, false, false, false]
};
this.timelineContainerRefs = [
React.createRef(), // ONE
React.createRef(), // TWO
React.createRef(), // THREE
React.createRef() // FOUR
];
}
timelineContainerRefs = [];
isElementInView = (elementRef, offset = 0) => {
if (!elementRef) {
return false;
}
const top = elementRef.getBoundingClientRect().top;
return (top + offset) >= 0 && (top - offset) <= window.innerHeight;
}
checkTimelimeContainersInView = () => {
let wasTimelineConatinerInView = this.state.wasTimelineConatinerInView;
for (var i = 0; i < this.timelineContainerRefs.length; i++) {
let timelineContainer = this.timelineContainerRefs[i];
if (this.isElementInView(timelineContainer)) {
wasTimelineConatinerInView[i] = true;
}
}
if (wasTimelineConatinerInView.every(x => x)) {
window.removeEventListener('scroll', this.checkTimelimeContainersInView);
}
this.setState({
wasTimelineConatinerInView: wasTimelineConatinerInView
});
}
getTimelineContainerClasses = (i) => {
let defaultClasses = "timeline-container timeline-left";
if (this.state.wasTimelineConatinerInView[i]) {
return defaultClasses + " animated slideInLeft faster";
}
return defaultClasses;
}
render() {
return (
<div className="container-fluid p-5"> {/* Check p-5 */}
<div className="container-fluid p-5">
<div className="timeline">
<div className="timeline-container timeline-left">
<div className={this.getTimelineContainerClasses(0)} ref={(el) => this.timelineContainerRefs[0] = el}>
<div className="timeline-content">
<h2>2017</h2>
<p>Lorem ipsum..</p>
</div>
</div>
<div className="timeline-container timeline-right">
<div className="timeline-container timeline-right" ref={(el) => this.timelineContainerRefs[1] = el}>
<div className="timeline-content">
<h2>2016</h2>
<p>Lorem ipsum..</p>
</div>
</div>
<div className="timeline-container timeline-left" ref={(el) => this.timelineContainerRefs[2] = el}>
<div className="timeline-content">
<h2>2016</h2>
<p>Lorem ipsum..</p>
</div>
</div>
<div className="timeline-container timeline-right" ref={(el) => this.timelineContainerRefs[3] = el}>
<div className="timeline-content">
<h2>2016</h2>
<p>Lorem ipsum..</p>
@@ -22,6 +86,10 @@ class History extends Component {
</div>
);
}
componentDidMount() {
window.addEventListener('scroll', this.checkTimelimeContainersInView);
}
}
export default History;