Changeset 8046 for plugins_spip


Ignore:
Timestamp:
01/05/14 00:38:29 (6 years ago)
Author:
kent1
Message:

Amélioration des flèches, on clique pour fermer la boite d'info, on gère correctement les callbacks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/terraeco_infographie/trunk/javascript/infographie.js

    r8042 r8046  
    77        height = ymax = ymax_origine = translate_defaut = step = 0,
    88        vitesse = vitesse_origine = 200,
    9         svg = paths = infobox = tip = tip_perspective = moving = move_again = callback_infobox_close = progress = perspective_ok = infobox_fermer = infobox_open = false;
     9        svg = paths = infobox = tip = tip_perspective = moving = move_again = callback_infobox_close = second_callback = progress = perspective_ok = infobox_fermer = infobox_open = false;
    1010
    1111// Un générateur de lignes
     
    242242        // Si on a un commentaire, on l'affiche à peu prÚs au moment de l'arrivée sur le point en question
    243243        if(typeof(d.commentaire) == 'string' && d.commentaire.length > 1){
     244                infobox_open = true;
    244245                var show_info = function(){
    245246                        climat_infobox_update('<div class="logo">'+d.logo+'</div><div class="contenu_anecdote"><span class="annee">'+d.axe_x+'</span>'+d.commentaire+'</div>');
     
    566567                        }
    567568                })
    568                 .on('click',function(event){ event.stopPropagation(); })
     569                .on('click',function(event){
     570                        event.stopPropagation();
     571                        if(infobox_open && infobox_fermer){
     572                                if(typeof(callback_infobox_close) == 'function')
     573                                        second_callback = callback_infobox_close;
     574                                var direction = jQuery(this).is('.left') ? -1:1;
     575                                callback_infobox_close = function(){
     576                                        callback_infobox_close = false;
     577                                        if(typeof(second_callback) == 'function'){
     578                                                second_callback();
     579                                                second_callback = false;
     580                                        }
     581                                        if(!infobox_open && moving == false){
     582                                                climat_graph_replace(direction);
     583                                                progress = setInterval(function(){
     584                                                                                                if(!infobox_open) climat_graph_replace(direction);
     585                                                                                        }, vitesse);
     586                                        }
     587                                }
     588                                jQuery('.'+infobox_class).trigger('infobox_close');
     589                        }
     590                })
    569591                .on('mouseenter',function(event){
    570592                        event.stopPropagation();
     593                        var direction = jQuery(this).is('.left') ? -1:1;
    571594                        if(!infobox_open && moving == false){
    572                                 var direction = jQuery(this).is('.left') ? -1:1;
    573595                                climat_graph_replace(direction);
    574596                                progress = setInterval(function(){
    575597                                                                                if(!infobox_open) climat_graph_replace(direction);
    576598                                                                        }, vitesse);
    577                         }else if(infobox_open && infobox_fermer)
     599                        }else if(infobox_open && infobox_fermer){
     600                                if(typeof(callback_infobox_close) == 'function')
     601                                        second_callback = callback_infobox_close;
     602                                callback_infobox_close = function(){
     603                                        callback_infobox_close = false;
     604                                        if(typeof(second_callback) == 'function'){
     605                                                second_callback();
     606                                                second_callback = false;
     607                                        }
     608                                        if(!infobox_open && moving == false){
     609                                                climat_graph_replace(direction);
     610                                                progress = setInterval(function(){
     611                                                                                                if(!infobox_open) climat_graph_replace(direction);
     612                                                                                        }, vitesse);
     613                                        }
     614                                }
    578615                                jQuery('.'+infobox_class).trigger('infobox_close');
     616                        }
    579617                })
    580618                .on('mouseleave',function(event){
Note: See TracChangeset for help on using the changeset viewer.