Salut,
L'idée c'est d'abstraire tes elements dans un tableau d'objets, en l'occurence, tes differents elements avec des classes (.hotel1, .hotel2 etc...);
Chacun de tes elements possède des propriétés, en l'occurence de style (opacity, height etc...)
Tu peux donc créer un tableau d'objets, ou chaque objet aura une propriété selector, qui fera reference à sa classe, et une propriété style, pour ses attributs de style, exemple:
Pour le css je te suggère de mettre toutes les propriétés que tu veux animer ou modifier à leur état initial, et en bonus ajouter une regle pour la transition :
Ensuite il nous reste plus qu'à boucler sur notre tableau, et pour chaque element:
- le selectionner dynamiquement avec son attribut selector
- appliquer le style de l'element parcouru en fusionnant ses propriétés avec celui selectionné
Pour le décalage, il suffit simplement de multiplier l'index courant par un delay choisi !
Ce qui donne un truc dans le genre:
je t'ai fait un JsFiddle complet en example:
https://jsfiddle.net/odmqjeu0/4/