Leaflet: Autoriser l'utilisateur à ne PAS avoir l'animation popup fadeOut sur closepopup (v1 beta2)

Créé le 8 nov. 2015  ·  4Commentaires  ·  Source: Leaflet/Leaflet

Le nouveau dépliant v1 apporte l'animation fadeOut lors de la fermeture du popup. C'est super, mais :

Ce serait formidable d'avoir une option permettant à l'utilisateur de choisir d'avoir ou PAS ce fadeOut.
Explication : J'exécute quelques fonctions map.on.popupopen pour styliser en temps réel le popup qui s'ouvre (différents styles pour différents endroits sur terre). Et avec le nouveau fondu enchaîné maintenant inclus, les styles que j'ajoute sont déjà visibles pendant le fondu enchaîné de la fenêtre contextuelle CLOSING (avant l'ouverture de la nouvelle fenêtre contextuelle). Ce qui conduit à un mélange visuel moche :)

http://jsfiddle.net/Pe5xU/268/

Je pense que ce serait formidable de nous laisser choisir d'avoir/ne pas avoir fadeIn/fadeOut des popups indépendamment les uns des autres plutôt que l'option globale fadeAnimation true/false.

Même sans regarder "mon" petit problème, j'adore voir les popups disparaître sans s'estomper et mybe je ne suis pas seul... :)

Commentaire le plus utile

Si vous stylisez déjà des popups, ajoutez simplement ce morceau de CSS :

.leaflet-fade-anim .leaflet-popup {
  transition: none;
}

choisissons d'avoir/ne pas avoir fadeIn/fadeOut des popups indépendamment les uns des autres plutôt que l'option globale fadeAnimation true/false.

Ajoutez simplement une classe CSS à ces fenêtres contextuelles pour lesquelles vous souhaitez désactiver les animations de fondu et utilisez le même peu de CSS :-)

Je ne pense pas que ce soit une fonctionnalité très importante, surtout quand elle peut être contournée avec un peu de CSS supplémentaire.

Tous les 4 commentaires

Si vous stylisez déjà des popups, ajoutez simplement ce morceau de CSS :

.leaflet-fade-anim .leaflet-popup {
  transition: none;
}

choisissons d'avoir/ne pas avoir fadeIn/fadeOut des popups indépendamment les uns des autres plutôt que l'option globale fadeAnimation true/false.

Ajoutez simplement une classe CSS à ces fenêtres contextuelles pour lesquelles vous souhaitez désactiver les animations de fondu et utilisez le même peu de CSS :-)

Je ne pense pas que ce soit une fonctionnalité très importante, surtout quand elle peut être contournée avec un peu de CSS supplémentaire.

Merci. Mais il saute aussi le fondu en attendant...

Ce n'est pas très important, tu as raison.
Cela peut être fait en supprimant quelques lignes dans le code source (c'est mauvais, je sais :).
Lors de la suppression du popup, je saute la partie IF pour éviter le fadeOut :

 L.Popup = L.Layer.extend({
 ...

 onRemove : fonction (carte) {
 //if (map._fadeAnimated) {
 // L.DomUtil.setOpacity(this._container, 0);
 // this._removeTimeout = setTimeout(L.bind(L.DomUtil.remove, L.DomUtil, this._container), 200);
 //} autre {
 L.DomUtil.remove(this._container);
 //}
 map.fire('popupclose', {popup : this});
 si (this._source) {
 this._source.fire('popupclose', {popup: this}, true);
 }
 },
 ...

 )}

@remilev Merci de ne pas modifier la version minifiée du code source. Personne ne peut comprendre cela.

@IvanSanchez Merci !

.leaflet-fade-anim .leaflet-popup {
  transition: none;
}

Cela fonctionne pour moi.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

timwis picture timwis  ·  3Commentaires

zdila picture zdila  ·  3Commentaires

viswaug picture viswaug  ·  4Commentaires

onethread picture onethread  ·  3Commentaires

frankjar picture frankjar  ·  4Commentaires