IPB

Bienvenue invité ( Connexion | Inscription )

> Mise en page animée, Nouveautés de CSS
Options
Anard
posté 23 Jan 2019, 15:37
Message #1


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 659
Inscrit : 7 May 2015
Membre no 195 224



Bonjour à tous. Je viens vous voir pour un assistance cosmétique (et non pas cosmique).

Je suis en train de me remettre un peu au développement web. Depuis le temps que je n'y était pas venu, ça a bien bougé ! On peut maintenant faire des animations en CSS biggrin.gif
Du coup pour mon nouveau site, je voudrais créer une interface adaptative et animée sans utiliser de javascript.

J'ai un menu principal "à la con" avec des chapitres principaux répartis autour d'une image. Le survol d'un chapitre doit faire apparaître un sous menu dans un genre de bulle, si possible de manière animée.
J'ai réussi à mettre en place quelques animations sur la couleur des liens, c'est déjà formidable.
Mais je n'arrive pas à faire apparaître ma box de manière progressive.

La construction du menu repose sur cette syntaxe :
Code
<dl><!-- élément de menu -->
    <dt><!-- titre du menu toujours visible, mais mobile-->
    <dd><ul><!-- sous-menu invisible au départ et qui doit apparaitre -->
        <li><!-- les différentes lignes du sous-menu -->


Pour faire apparaitre un <dd>, j'utilise dans mon css :
Code
dl:hover dd {
    display: inline-block;
}


Malheureusement, je n'arrive pas à animer cette appartition, même en indiquant au préalable
Code
dl dd {
    transition: display 1s;
}

En effet, il semble que la transistion doit s'appliquer à l'élément survolé et non à un sous-élément (en l'occurrence, je veux afficher le <dd> au survol du <dl> parent).
Je ne sais pas si je me fais bien comprendre...

Je découvres ces nouvelles fonctionnalités, alors votre aide serait la bienvenue...

Merci beaucoup. Pour plus d'informations, vous pouvez visualiser l'état des choses ici


--------------------
"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Asus GTX670 Intel HD4600, 2x SSD 256Go, HDD 500Go+Zraid 3x2To / Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel core2 T6400, 4Go DDR3, NVidia GeForce 9300M, HDD 256Go / Grub2 - Gentoo-Xfce
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
Philippe64
posté 24 Jan 2019, 09:20
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 263
Inscrit : 31 Aug 2002
Lieu : Saint-Jean-de-Luz
Membre no 3 355



Je t'ai fais un petit code pour que tu testes (je sais que ça marche j'ai testé de mon côté)
ce n'est pas parfait, mais c'est pour l'exemple.

Mais franchement, laisse tomber tous tes dt, dl et compagnie... simplifie ton code.
c'est le conseil que je peux te donner après 20 ans d'expérience (j'ai commencé en 1999 et c'est mon métier depuis)

ce sera d'autant plus simple pour basculer sur la version mobile (avec le même css)


Code
/* @override
    http://test.musiquesmagiques.fr/Styles/menu.css */

.menu {
    vertical-align: top;
    position: fixed;
    top: 180px;
}

#phono {
    display: none;
}

.menu, .menu a {
    text-decoration: none;
    color: black;
    max-width: 200px;
}

#curMenu, #curMenu a {
    color: #5e0505;
}

.menu dd {
    display: none;
    opacity: 0;
}

.menu dt, .menu dt a {
    font-weight: bold;
}

.menu dl ul {
    list-style-type: none;
    padding: 10px 0 0 0;
}

/* Petit phono */
.menu dt:not(#curMenu) img, .menu li:not(#curMenu) img {
    display: none;
}
.menu dt img, .menu li img {
    width: 20px;
    margin: 0px 5px;
    vertical-align: middle;
}
.menu dt#curMenu, .menu li#curMenu {
    magin: 10px 5px;
}

/* Cas de la page Accueil */
.corps .menu {    
    position: relative;
    top: auto;
    max-width: 100%;
}

.corps #phono {
    display: block;
    z-index: 1;
    padding-top: 20px;
}

.corps .menu li img {
    display: none;
}

#chapitres {
    position: absolute;
    top: 0;
    left: 240px;
    z-index: 2;
}

.corps .menu dl {
    position: relative;
    display: block;
    height: 40px;
    z-index: 1;
}

.corps .menu dt {
    display: block;
}

.corps .menu dd {
    vertical-align: middle;
    margin: 10px;
    display: block;
    position: absolute;
    left: 110px;
    top: -40px;
    width: 200px;
    transform: scale(0.2);
    transform-origin: 0 0;
}

.corps .menu ul {
    border: 1px inset black;
    border-radius: 10px;
    padding: 5px 15px;    
    background-color: #f3e2c7;
}

#menu0 {
    display: none;
}
#menu1 {
    left: 30px;
}
#menu2 {
    left: 55px;
}
#menu3 {
    left: 72px;
}
#menu4 {
    left: 85px;
}
#menu5 {
    left: 89px;
}

/* Animations */
.corps .menu dl {
    transition: margin-left 1s ease;
}
.menu dd {
    transition: opacity 1s ease, transform 1s ease;
}



.corps .menu dl:hover {
    margin-left: 20px;
    z-index: 10;
}
/*
.corps #menu0:hover {
    left: 20px;
}
.corps #menu1:hover {
    left: 50px;
}
.corps #menu2:hover {
    left: 75px;
}
.corps #menu3:hover {
    left: 92px;
}
.corps #menu4:hover {
    left: 105px;
}
.corps #menu5:hover {
    left: 109px;
}*/

.menu dt, .menu a {
    transition: color 0.2s ease-out;
}
.menu dt:hover, .menu a:hover {
    color: brown;
}

.corps .menu dl:hover dd, #openMenu {
    opacity: 1;
    transform: scale(1);
}
/*
.menu dl:hover dd, #openMenu {
    display: block;
}

.corps .menu dl:hover dd {
    display: inline-block;
}*/


--------------------
En activité : Macbook pro 15" Core I7 à 2.8Ghz de 2015 - Macbook pro 13" Core I5 à 2.5Ghz - Macbook pro 15" Core duo de 2006 qui marche toujours hyper bien - iPhone 6s - iPad - iPad Mini
En Panne : Imac 27 Pouces Core I7 à 3.4Ghz - mid 2011 (je cherche un écran)
A la retraite : Imac C2D 24 Pouces (blanc) à 2.33 Ghz - iBook14" 800 Mhz - Quicksilver 733 - G3 bleu et blanc - Macintosh Classic - iPhone 3G - iPhone 4s

Crea64 : creation de site internet à Saint-Jean-de-Luz (64)
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 19th July 2025 - 10:24