animation changement d'ordre OK

This commit is contained in:
Florian Ehr 2021-02-15 12:11:36 +01:00
parent fed2e84e4d
commit 8c2af9d725
2 changed files with 24 additions and 38 deletions

View file

@ -19,24 +19,15 @@
} }
#sortOrder{ #sortOrder{
display: flex;
flex-direction: row;
justify-content: center;
color: white; color: white;
font-family:'Wellfleet',cursive; font-family:'Wellfleet',cursive;
font-size: 1.2vw; font-size: 1.4vw;
cursor: pointer; cursor: pointer;
} }
/* #sortOrder:hover {
animation: rotate180 2s forwards
}
.letter {
animation: rotate180 2s forwards;
} */
#sortOrder>span {
animation : rotate180 2s forwards
}
@keyframes rotate180 { @keyframes rotate180 {
0% {} 0% {}
100% { transform: rotate3d(0,1,0, 180deg)} 100% { transform: rotate3d(0,1,0, 180deg)}

View file

@ -27,26 +27,14 @@ class Sort extends Component {
setOrderText() { setOrderText() {
switch(this.state.sortType) { switch(this.state.sortType) {
case "name": case "name":
if (this.props.lowToHigh) {
this.setState({ this.setState({
orderText: "a-z" orderText: "A-Z"
}) })
} else {
this.setState({
orderText: "z-a"
})
}
break; break;
case "price": case "price":
if (this.props.lowToHigh) {
this.setState({ this.setState({
orderText: "0-9" orderText: "0-9"
}) })
} else {
this.setState({
orderText: "9-0"
})
}
break; break;
default: default:
break; break;
@ -63,25 +51,32 @@ class Sort extends Component {
} }
handleChangeSortOrder() { handleChangeSortOrder() {
let letters = document.getElementsByClassName("letter") let letters = document.querySelectorAll('.letter');
let sortText = document.getElementById("sortOrder") let sortText = document.getElementById("sortOrder");
//animation du texte entier //animation du texte entier
if (this.state.flipped) { if (this.state.flipped) {
sortText.style.cssText = "animation: reverse180 1s forwards" sortText.style.cssText = "animation: reverse180 1s forwards"
letters.forEach((l) => {
l.style.animation = "reverse180 0.5s forwards"
});
} else { } else {
sortText.style.cssText = "animation: rotate180 1s forwards" sortText.style.cssText = "animation: rotate180 1s forwards"
letters.forEach((l) => {
l.style.animation = "rotate180 0.5s forwards"
});
} }
//animation de chaque lettre
for (let i = 0 ; i<letters.length ; i++) {
letters[i].style.animation = "rotate180 1s forwards"
}
this.setState({flipped : !this.state.flipped}) this.setState({flipped : !this.state.flipped})
//actualisation de l'ordre d'affichage des produits
setTimeout(() => { setTimeout(() => {
this.props.handleChangeSortOrder(); this.props.handleChangeSortOrder();
}, 500) }, 500)
} }
render() { render() {
console.log(document.getElementById("sortOrder"))
// console.log(this.state.orderText) // console.log(this.state.orderText)
// console.log(this.state.orderText.split("")) // console.log(this.state.orderText.split(""))
// console.log(document.getElementById("sortOrder")) // console.log(document.getElementById("sortOrder"))
@ -103,7 +98,7 @@ class Sort extends Component {
</div> </div>
<p id="sortOrder" onClick={this.handleChangeSortOrder} hidden={this.props.orderIsHidden}> <p id="sortOrder" onClick={this.handleChangeSortOrder} hidden={this.props.orderIsHidden}>
{this.state.orderText.split("").map((l) => {this.state.orderText.split("").map((l) =>
<span className="letter">{l}</span> <div className="letter">{l}</div>
)} )}
</p> </p>
</div> </div>