Changeset 8010


Ignore:
Timestamp:
12/26/13 00:54:56 (6 years ago)
Author:
kent1
Message:

Avancer correctement dans les perspectives

Reste à les colorer + des messages

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/terraeco_infographie/trunk/infographie.html

    r8009 r8010  
    107107                                                var date_origine = date_actuelle = [(#ENV{naissance,#GET{naissance_min}}|<{#GET{naissance_min}}|?{#GET{naissance_min},#ENV{naissance}}|intval)],
    108108                                                        naissance = [(#ENV{naissance}|intval)],
    109                                                         ymax = ymax_origine = 0, translate_defaut = 0;
     109                                                        ymax = ymax_origine = 0, translate_defaut = step = 0;
    110110                                               
    111111                                                var margin = {top: 0, right: 60, bottom: 60, left: 0},
     
    114114                                                        height = graph_height - margin.top - margin.bottom -60,
    115115                                                        vitesse = 200,
    116                                                         infobox = tip = moving = infobox_bloquee = move_again = progress_mousedown = false;
     116                                                        infobox = tip = moving = infobox_bloquee = move_again = callback_infobox_close = progress_mousedown = perspective_ok = false;
    117117
    118118                                                // Scales and axes. Note the inverted domain for the y-scale: bigger is up!
     
    173173                                                // Avance le graph de 1 ou le recule de -1 (en année)
    174174                                                function graph_replace(valeur){
    175                                                         if(date_actuelle >= values2[values2.length-1].axe_x)
     175                                                        if(!perspective_ok && date_actuelle >= parseInt(values[values.length-1].axe_x))
     176                                                                return false;
     177                                                       
     178                                                        if(perspective_ok && (parseInt(date_actuelle)+parseFloat(valeur)) > parseInt(values[values.length-1].axe_x))
    176179                                                                return false;
    177180                                                       
     
    194197
    195198                                                        jQuery('.tooltip').text(+parseFloat(d.axe_y).toFixed(2)+'#UNITE');
    196                                                         var left = x(value_origine.axe_x)+parseFloat(translate_defaut)-jQuery('.tooltip').outerWidth();
    197                                                         var top = y(d.axe_y) - (jQuery('.tooltip').outerHeight()/2);
    198                                                         if(jQuery('.tooltip').is(':hidden'))
    199                                                                 jQuery('.tooltip').css({'top':top,'left':left}).show();
    200                                                         else
    201                                                                 jQuery('.tooltip').animate({'top':top,'left':left},vitesse);
    202199                                                       
    203200                                                        // Si on a un commentaire, on l'affiche à peu prÚs au moment de l'arrivée sur le point en question
     
    207204                                                                                function(){
    208205                                                                                        jQuery('.'+infobox_class).fadeIn(vitesse,function(){
    209                                                                                                 jQuery(this).trigger('infobox_open');
    210                                                                                                 jQuery('.'+infobox_class+' .close_box').unbind('click').on('click',function(){
    211                                                                                                         jQuery('.'+infobox_class).fadeOut(500,function(){
    212                                                                                                                 jQuery(this).trigger('infobox_close');
    213                                                                                                         });
     206                                                                                                jQuery('.'+infobox_class+' .close_box').unbind('click').on('click',function(event){
     207                                                                                                        event.preventDefault();
     208                                                                                                        event.stopPropagation();
     209                                                                                                        jQuery('.'+infobox_class).fadeOut().trigger('infobox_close');
    214210                                                                                                });
    215                                                                                         });
     211                                                                                        }).trigger('infobox_open');
    216212                                                                                }
    217213                                                                        );
     
    220216                                                        }
    221217                                                       
    222                                                         d3.select(".paths")
    223                                                                 .transition()
    224                                                                 .duration(vitesse)
    225                                                                 .attr("transform", "translate("+translatex+", 0)").each("end", function(){
    226                                                                         if(move_again && jQuery('.'+infobox_class).is(':hidden')){
    227                                                                                 move_again = false
    228                                                                                 graph_replace(valeur);
    229                                                                         }else
     218                                                        var tooltip_top = y(d.axe_y) - (jQuery('.tooltip').outerHeight()/2);
     219                                                        if(date_actuelle <= 2012){
     220                                                                var left = x(value_origine.axe_x)+parseFloat(translate_defaut)-jQuery('.tooltip').outerWidth();
     221                                                                if(jQuery('.tooltip').is(':hidden'))
     222                                                                        jQuery('.tooltip').css({'top':tooltip_top,'left':left}).show();
     223                                                                else
     224                                                                        jQuery('.tooltip').animate({'top':tooltip_top,'left':left},vitesse);
     225                                                                d3.select(".paths")
     226                                                                        .transition()
     227                                                                        .duration(vitesse)
     228                                                                        .attr("transform", "translate("+translatex+", 0)").each("end", function(){
     229                                                                                if(move_again && jQuery('.'+infobox_class).is(':hidden')){
     230                                                                                        move_again = false
     231                                                                                        graph_replace(valeur);
     232                                                                                }else
     233                                                                                        move_again = moving = false;
     234                                                                        });
     235                                                                d3.select(".interaction")
     236                                                                        .attr("transform", "translate(0, 0)")
     237                                                                // Afficher le message de fin de données actuelles
     238                                                                if(!perspective_ok && date_actuelle == parseInt(values2[values2.length-1].axe_x)){
     239                                                                        var show_info = function(){
     240                                                                                if(naissance > values[0].axe_x && [(#ENV{donnees,1})] == 1){
     241                                                                                        var degres = (parseFloat(values[values.length-1].axe_y) - parseFloat(value_origine.axe_y)).toFixed(2);
     242                                                                                        if(degres.charAt(0) == '-'){
     243                                                                                                degres = degres.replace('-','');
     244                                                                                                var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis votre naissance,<br /> la température à la surface du globe<br />a diminué de "+degres+"°.</p>";
     245                                                                                        }else
     246                                                                                                var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis votre naissance,<br /> la température à la surface du globe<br />a augmenté de "+degres+"°.</p>";
     247                                                                                }
     248                                                                                else if(naissance < values[0].axe_x && [(#ENV{donnees,1})] == 1){
     249                                                                                        var degres = (parseFloat(values[values.length-1].axe_y) - parseFloat(value_origine.axe_y)).toFixed(2);
     250                                                                                        var age = (parseInt(naissance) - parseFloat(value_origine.axe_x)).toString().replace('-','');
     251                                                                                        if(degres.charAt(0) == '-'){
     252                                                                                                degres = degres.replace('-','');
     253                                                                                                var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis vos "+age+" ans,<br /> la température à la surface du globe<br />a diminué de "+degres+"°.</p>";
     254                                                                                        }else
     255                                                                                                var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis vos "+age+" ans,<br /> la température à la surface du globe<br />a augmenté de "+degres+"°.</p>";
     256                                                                                }
     257                                                                                else if(naissance > values[0].axe_x && [(#ENV{donnees,1})] == 2){
     258                                                                                        var ppm = (parseFloat(values[values.length-1].axe_y) - parseFloat(value_origine.axe_y)).toFixed(2);
     259                                                                                        var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis votre naissance,<br /> la concentration de CO2 dans l'atmosphÚre<br />a augmenté de "+ppm+" particules par millions.</p>";
     260                                                                                }
     261                                                                                else if(naissance < values[0].axe_x && [(#ENV{donnees,1})] == 2){
     262                                                                                        var ppm = (parseFloat(values[values.length-1].axe_y) - parseFloat(value_origine.axe_y)).toFixed(2);
     263                                                                                        var age = (parseInt(naissance) - parseFloat(value_origine.axe_x)).toString().replace('-','');
     264                                                                                        var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis vos "+age+" ans,<br /> la concentration de CO2 dans l'atmosphÚre<br />a augmenté de "+ppm+" en particules par millions.</p>";
     265                                                                                }
     266                                                                               
    230267                                                                                move_again = moving = false;
    231                                                                 });
    232 
    233                                                         // Afficher le message de fin de données actuelles
    234                                                         if(date_actuelle == parseInt(values[values.length-1].axe_x)){
    235                                                                 var show_info = function(){
    236                                                                         if(naissance > values[0].axe_x && [(#ENV{donnees,1})] == 1){
    237                                                                                 var degres = (parseFloat(values[values.length-1].axe_y) - parseFloat(value_origine.axe_y)).toFixed(2);
    238                                                                                 if(degres.charAt(0) == '-'){
    239                                                                                         degres = degres.replace('-','');
    240                                                                                         var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis votre naissance,<br /> la température à la surface du globe<br />a diminué de "+degres+"°.</p>";
     268                                                                               
     269                                                                                if(texte_fin){
     270                                                                                        infobox_update('<div class="close_box"><a href="#" onclick="return false;">x</a></div><div class="contenu contenu_fin">'+texte_fin+'</div>',
     271                                                                                                function(){
     272                                                                                                        jQuery('.'+infobox_class).fadeIn(500,function(){
     273                                                                                                                callback_infobox_close = function(){
     274                                                                                                                        jQuery('#'+containerid).fadeOut(1000,function(){
     275                                                                                                                                jQuery('.tooltip').hide();
     276                                                                                                                                var callback = jQuery('#'+containerid).fadeIn(1000);
     277                                                                                                                                if(#ENV{donnees,1} == 1){
     278                                                                                                                                        draw_perspectives_1(callback);
     279                                                                                                                                }else{
     280                                                                                                                                        draw_perspectives_2(callback);
     281                                                                                                                                }
     282                                                                                                                                callback_infobox_close = false;
     283                                                                                                                        });
     284                                                                                                                }
     285                                                                                                                jQuery('.'+infobox_class+' .close_box').unbind('click').on('click',function(event){
     286                                                                                                                        event.preventDefault();
     287                                                                                                                        event.stopPropagation();
     288                                                                                                                        jQuery('.'+infobox_class).fadeOut().trigger('infobox_close');
     289                                                                                                                });
     290                                                                                                        }).trigger('infobox_open');
     291                                                                                                });
     292                                                                                }
     293                                                                        }
     294                                                                        setTimeout(show_info,vitesse);
     295                                                                }
     296                                                        }else{
     297                                                                var translate_interactivite = ((date_actuelle-2012)*step);
     298                                                                /**
     299                                                                 * le tooltip se déplace avec la barre, c'est la taille du déplacement moins la taille du groupe
     300                                                                 * .interaction
     301                                                                 */
     302                                                                var tooltip_left = d3.select('.ligne_interactive').node().getBBox().x+translate_interactivite-jQuery('.tooltip').outerWidth();
     303                                                                d3.select(".interaction")
     304                                                                        .transition()
     305                                                                        .duration(vitesse)
     306                                                                        .attr("transform", "translate("+translate_interactivite+", 0)").each("end", function(){
     307                                                                                if(move_again && jQuery('.'+infobox_class).is(':hidden')){
     308                                                                                        move_again = false
     309                                                                                        graph_replace(valeur);
    241310                                                                                }else
    242                                                                                         var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis votre naissance,<br /> la température à la surface du globe<br />a augmenté de "+degres+"°.</p>";
    243                                                                         }
    244                                                                         else if(naissance < values[0].axe_x && [(#ENV{donnees,1})] == 1){
    245                                                                                 var degres = (parseFloat(values[values.length-1].axe_y) - parseFloat(value_origine.axe_y)).toFixed(2);
    246                                                                                 var age = (parseInt(naissance) - parseFloat(value_origine.axe_x)).toString().replace('-','');
    247                                                                                 if(degres.charAt(0) == '-'){
    248                                                                                         degres = degres.replace('-','');
    249                                                                                         var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis vos "+age+" ans,<br /> la température à la surface du globe<br />a diminué de "+degres+"°.</p>";
    250                                                                                 }else
    251                                                                                         var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis vos "+age+" ans,<br /> la température à la surface du globe<br />a augmenté de "+degres+"°.</p>";
    252                                                                         }
    253                                                                         else if(naissance > values[0].axe_x && [(#ENV{donnees,1})] == 2){
    254                                                                                 var ppm = (parseFloat(values[values.length-1].axe_y) - parseFloat(value_origine.axe_y)).toFixed(2);
    255                                                                                 var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis votre naissance,<br /> la concentration de CO2 dans l'atmosphÚre<br />a augmenté de "+ppm+" particules par millions.</p>";
    256                                                                         }
    257                                                                         else if(naissance < values[0].axe_x && [(#ENV{donnees,1})] == 2){
    258                                                                                 var ppm = (parseFloat(values[values.length-1].axe_y) - parseFloat(value_origine.axe_y)).toFixed(2);
    259                                                                                 var age = (parseInt(naissance) - parseFloat(value_origine.axe_x)).toString().replace('-','');
    260                                                                                 var texte_fin = "<p>Vous êtes né(e) en "+naissance+". Depuis vos "+age+" ans,<br /> la concentration de CO2 dans l'atmosphÚre<br />a augmenté de "+ppm+" en particules par millions.</p>";
    261                                                                         }
    262                                                                        
    263                                                                         move_again = moving = false;
    264                                                                        
    265                                                                         if(texte_fin){
    266                                                                                 infobox_update('<div class="close_box"><a href="#" onclick="return false;">x</a></div><div class="contenu contenu_fin">'+texte_fin+'</div>',
    267                                                                                         function(){
    268                                                                                                 jQuery('.'+infobox_class).fadeIn(500,function(){
    269                                                                                                         jQuery(this).trigger('infobox_open');
    270                                                                                                         jQuery('.'+infobox_class+' .close_box').unbind('click').unbind('click').on('click',function(){
    271                                                                                                                 jQuery('.'+infobox_class).fadeOut(500,function(){
    272                                                                                                                         jQuery(this).trigger('infobox_close');
    273                                                                                                                 });
    274                                                                                                                 jQuery('#'+containerid).fadeOut(1000,function(){
    275                                                                                                                         jQuery('.tooltip').hide();
    276                                                                                                                         var callback = jQuery('#'+containerid).fadeIn(1000);
    277                                                                                                                         if(#ENV{donnees,1} == 1){
    278                                                                                                                                 draw_perspectives_1(callback);
    279                                                                                                                         }else{
    280                                                                                                                                 draw_perspectives_2(callback);
    281                                                                                                                         }
    282                                                                                                                 });
    283                                                                                                         });
    284                                                                                                 });
    285                                                                                         });
    286                                                                         }
    287                                                                        
    288                                                                 }
    289                                                                 setTimeout(show_info,vitesse);
     311                                                                                        move_again = moving = false;
     312                                                                        });
     313                                                                if(jQuery('.tooltip').is(':hidden'))
     314                                                                        jQuery('.tooltip').css({'top':tooltip_top,'left':tooltip_left}).show();
     315                                                                else
     316                                                                        jQuery('.tooltip').animate({'top':tooltip_top,'left':tooltip_left},vitesse);
    290317                                                        }
    291318                                                }
     319
    292320                                               
    293321                                                function draw_perspectives_1(callback){
    294                                                        
    295322                                                        d3.text("#CHEMIN{csv/perspective_temp_rcp85_original.csv}", function(datasetText) {
    296323                                                                var parsedCSV = d3.csv.parseRows(datasetText);
    297324                                                                // On ajoute la ligne de données pour la période aprÚs naissance
    298325                                                                parsedCSV.forEach(function(row, i){
     326                                                                        /**
     327                                                                         * On va remplir les années manquantes
     328                                                                         */
     329                                                                        if((values[values.length-1].axe_x+1) < row[0]){
     330                                                                                j =  1;
     331                                                                                i = row[0] - values[values.length-1].axe_x;
     332                                                                                console.log(i);
     333                                                                                value_haute = values_perspective1_haute[values_perspective1_haute.length-1];
     334                                                                                value_basse = values_perspective1_basse[values_perspective1_basse.length-1];
     335                                                                                value_mediane = values_perspective1_mediane[values_perspective1_mediane.length-1];
     336                                                                                moyenne_haute = (row[3] - value_haute.axe_y)/i;
     337                                                                                moyenne_basse = (row[1] - value_basse.axe_y1)/i;
     338                                                                                mediane = (row[2] - value_mediane.axe_y)/i;
     339                                                                                while (j<i){
     340                                                                                        new_row_haute = {};
     341                                                                                        new_row_basse = {};
     342                                                                                        new_row_mediane = {};
     343                                                                                        new_row_haute.axe_x = new_row_basse.axe_x = new_row_mediane.axe_x = (parseFloat(values[values.length-1].axe_x)+1);
     344                                                                                        new_row_haute.axe_y = parseFloat(value_haute.axe_y)+(parseFloat(moyenne_haute)*parseInt(j));
     345                                                                                        new_row_basse.axe_y1 = parseFloat(value_basse.axe_y1)+(parseFloat(moyenne_basse)*parseInt(j));
     346                                                                                        new_row_haute.axe_y1 = new_row_basse.axe_y = new_row_mediane.axe_y = parseFloat(value_mediane.axe_y)+(parseFloat(mediane)*parseInt(j));
     347                                                                                        values_perspective1_haute.push(new_row_haute);
     348                                                                                        values.push(new_row_haute);
     349                                                                                        values_perspective1_basse.push(new_row_basse);
     350                                                                                        values_perspective1_mediane.push(new_row_mediane);
     351                                                                                        j++;
     352                                                                                }
     353                                                                        }
    299354                                                                        new_row_haute = {};
    300355                                                                        new_row_basse = {};
    301356                                                                        new_row_mediane = {};
    302                                                                         new_row_haute.axe_x = new_row_basse.axe_x = new_row_mediane.axe_x = parseFloat(row[0]).toFixed();
    303                                                                         new_row_haute.axe_y = row[3];
    304                                                                         new_row_haute.axe_y1 = new_row_basse.axe_y = new_row_mediane.axe_y = row[2];
    305                                                                         new_row_basse.axe_y1 = row[1];
     357                                                                        new_row_haute.axe_x = new_row_basse.axe_x = new_row_mediane.axe_x = parseInt(row[0]);
     358                                                                        new_row_haute.axe_y = parseFloat(row[3]);
     359                                                                        new_row_haute.axe_y1 = new_row_basse.axe_y = new_row_mediane.axe_y = parseFloat(row[2]);
     360                                                                        new_row_basse.axe_y1 = parseFloat(row[1]);
    306361                                                                        values_perspective1_haute.push(new_row_haute);
    307362                                                                        values.push(new_row_haute);
     
    323378                                                                 * - 3 années à la fin pour voir le "DEMAIN"
    324379                                                                 */
    325                                                                 real_width = (graph_width/(parseInt(values[values.length-1].axe_x)-date_origine+10))*(xmax-xmin);
    326                                                                
    327                                                                 x.range([0, real_width]).domain([xmin, xmax]);
    328                                                                 y.range([height, 0]).domain([ymin, ymax]).nice();
    329                                                                
    330                                                                 translate_defaut = '-'+x(value_actuelle.axe_x);
    331                                                                 translate_new = x(value_origine.axe_x-7)+35;
     380                                                                real_width = (graph_width/(parseInt(values[values.length-1].axe_x)-date_origine+12))*(xmax-xmin);
     381                                                                x.range([0, real_width]).domain([xmin,xmax]);
     382                                                                y.domain([ymin, ymax]).nice();
     383                                                               
     384                                                                step = x(values2[1].axe_x)-x(values2[0].axe_x);
     385                                                               
     386                                                                translate_defaut = '-'+x(date_origine-((2012-date_origine)+7));
     387                                                                translate_new = '-'+x(date_origine-7);
    332388                                                                /**
    333389                                                                 * On parse la perspective basse
     
    337393                                                                        // On ajoute la ligne de données pour la période aprÚs naissance
    338394                                                                        parsedCSV.forEach(function(row, i){
     395                                                                                /**
     396                                                                                 * On va remplir les années manquantes
     397                                                                                 */
     398                                                                                if((values_perspective2_basse.length > 0) && (values_perspective2_basse[values_perspective2_basse.length-1].axe_x+1) < row[0]){
     399                                                                                        j =  1;
     400                                                                                        i = row[0] - values_perspective2_basse[values_perspective2_basse.length-1].axe_x;
     401                                                                                        console.log(row[0] +' '+i);
     402                                                                                        var value_haute = values_perspective2_haute[values_perspective2_haute.length-1];
     403                                                                                        var value_basse = values_perspective2_basse[values_perspective2_basse.length-1];
     404                                                                                        var value_mediane = values_perspective2_mediane[values_perspective2_mediane.length-1];
     405                                                                                        var moyenne_haute = (row[3] - value_haute.axe_y)/i;
     406                                                                                        var moyenne_basse = (row[1] - value_basse.axe_y1)/i;
     407                                                                                        var mediane = (row[2] - value_mediane.axe_y)/i;
     408                                                                                        while (j<i){
     409                                                                                                var new_row_haute = {};
     410                                                                                                var new_row_basse = {};
     411                                                                                                var new_row_mediane = {};
     412                                                                                                new_row_haute.axe_x = new_row_basse.axe_x = new_row_mediane.axe_x = (parseFloat(values_perspective2_basse[values_perspective2_basse.length-1].axe_x)+1);
     413                                                                                                new_row_haute.axe_y = parseFloat(value_haute.axe_y)+(parseFloat(moyenne_haute)*parseInt(j));
     414                                                                                                new_row_basse.axe_y1 = parseFloat(value_basse.axe_y1)+(parseFloat(moyenne_basse)*parseInt(j));
     415                                                                                                new_row_haute.axe_y1 = new_row_basse.axe_y = new_row_mediane.axe_y = parseFloat(value_mediane.axe_y)+(parseFloat(mediane)*parseInt(j));
     416                                                                                                values_perspective2_haute.push(new_row_haute);
     417                                                                                                values_perspective2_basse.push(new_row_basse);
     418                                                                                                values_perspective2_mediane.push(new_row_mediane);
     419                                                                                                console.log(new_row_haute);
     420                                                                                                j++;
     421                                                                                        }
     422                                                                                }
    339423                                                                                new_row_haute = {};
    340424                                                                                new_row_basse = {};
     
    415499                                                                        var texte_fin = "<div class='close_box'><a href='#' onclick='return false;'>x</a></div><div class='contenu contenu_fin'>Le Groupe d’experts intergouvernemental sur l’évolution du climat (Giec) travaille sur les changements climatiques depuis 1988. Voici les deux scénarios extrêmes de ses estimations pour l'évolution des températures à la surface du globe entre 2012 et 2100.</div>";
    416500                                                                                infobox_update(texte_fin,function(){
    417                                                                                         jQuery('.'+infobox_class).fadeIn(500,function(){
    418                                                                                                 jQuery(this).trigger('infobox_open');
    419                                                                                         });
     501                                                                                        jQuery('.'+infobox_class).fadeIn(500).trigger('infobox_open');
    420502                                                                                });
    421503                                                                       
     504                                                                        step = x(values[values.length-1].axe_x)-x(values[values.length-2].axe_x);
     505                                                                        perspective_ok = true;
    422506                                                                        // Si on a donné une fonction comme callback => on l'exécute
    423507                                                                        if(typeof(callback) == 'function') callback();
     
    451535                                                                 * - la date de naissance
    452536                                                                 * - 7 années avant la date de naissance
    453                                                                  * - 3 années à la fin pour voir le "DEMAIN"
    454537                                                                 */
    455                                                                 real_width = (graph_width/(parseInt(values[values.length-1].axe_x)-date_origine+10))*(xmax-xmin);
    456                                                                
    457                                                                 x.range([0, real_width]).domain([xmin, xmax]);
     538                                                                 
     539                                                                real_width = (graph_width/(parseInt(values[values.length-1].axe_x)-date_origine+12))*(xmax-xmin);
     540                                                                x.range([0, real_width]).domain([xmin,xmax]);
    458541                                                                y.domain([ymin, ymax]).nice();
    459542                                                               
    460                                                                 translate_defaut = '-'+x(value_actuelle.axe_x);
    461                                                                 translate_new = x(value_origine.axe_x-7)+35;
     543                                                                step = x(values2[1].axe_x)-x(values2[0].axe_x);
     544                                                               
     545                                                                translate_defaut = '-'+x(date_origine-((2012-date_origine)+7));
     546                                                                translate_new = '-'+x(date_origine-7);
     547                                                               
     548                                                               
    462549                                                                /**
    463550                                                                 * On parse la perspective basse
     
    527614                                                                        var texte_fin = "<div class='close_box'><a href='#' onclick='return false;'>x</a></div><div class='contenu contenu_fin'>Le Groupe d’experts intergouvernemental sur l’évolution du climat (Giec) travaille sur les changements climatiques depuis 1988. Voici les deux scénarios extrêmes de ses estimations pour l'évolution des températures à la surface du globe entre 2012 et 2100.</div>";
    528615                                                                                infobox_update(texte_fin,function(){
    529                                                                                         jQuery('.'+infobox_class).fadeIn(500,function(){
    530                                                                                                 jQuery(this).trigger('infobox_open');
    531                                                                                         });
     616                                                                                        jQuery('.'+infobox_class).fadeIn().trigger('infobox_open');
    532617                                                                                });
    533 
     618                                                                       
     619                                                                        perspective_ok = true;
    534620                                                                        if(typeof(callback) == 'function') callback();
    535621                                                                });
     
    557643
    558644                                                // Au click sur le graph, on cache l'infobox si visible
    559                                                 jQuery('#'+containerid).on('click',function(){
     645                                                jQuery('#'+containerid).on('click',function(event){
     646                                                        event.preventDefault();
     647                                                        event.stopPropagation();
    560648                                                        if(jQuery('.'+infobox_class).is(':visible')){
    561649                                                                if(infobox_bloquee){
    562650                                                                        jQuery('.'+infobox_class).fadeOut(500,function(){
    563                                                                                 jQuery(this).trigger('infobox_close');
    564651                                                                                infobox_bloquee = false;
    565652                                                                                infobox_update('<div class="close_box"><a href="#" onclick="return false;">x</a></div><div class="contenu contenu_fin"><:terraeco:anecdote_scroll:></div>',function(){
    566                                                                                         jQuery('.'+infobox_class).fadeIn(500,function(){
    567                                                                                                 jQuery(this).trigger('infobox_open');
    568                                                                                         });
     653                                                                                        jQuery('.'+infobox_class).fadeIn().trigger('infobox_open');
    569654                                                                                });
    570655                                                                               
    571                                                                         });
     656                                                                        }).trigger('infobox_close');
    572657                                                                }
    573                                                                 else jQuery('.'+infobox_class).fadeOut(500,function(){
    574                                                                         jQuery(this).trigger('infobox_close');
    575                                                                 });
     658                                                                else jQuery('.'+infobox_class).fadeOut().trigger('infobox_close');
    576659                                                        }
    577660                                                });
     
    662745                                                                        infobox_bloquee = true;
    663746                                                                        jQuery('.'+infobox_class).fadeIn(500,function(){
    664                                                                                 jQuery(this).trigger('infobox_open');
    665                                                                                 jQuery('.'+infobox_class+' .close_box').unbind('click').on('click',function(){
     747                                                                                jQuery('.'+infobox_class+' .close_box').unbind('click').on('click',function(event){
     748                                                                                        event.preventDefault();
     749                                                                                        event.stopPropagation();
    666750                                                                                        jQuery('.'+infobox_class).fadeOut(500,function(){
    667                                                                                                 jQuery(this).trigger('infobox_close');
    668751                                                                                                infobox_bloquee = false;
    669752                                                                                                infobox_update('<div class="close_box"><a href="#" onclick="return false;">x</a></div><div class="contenu contenu_fin"><:terraeco:anecdote_scroll:></div>')
    670                                                                                                 jQuery('.'+infobox_class).fadeIn(500,function(){
    671                                                                                                         jQuery(this).trigger('infobox_open');
    672                                                                                                 });
    673                                                                                         });
     753                                                                                                jQuery('.'+infobox_class).fadeIn().trigger('infobox_open');
     754                                                                                        }).trigger('infobox_close');
    674755                                                                                });
    675                                                                         });
     756                                                                        }).trigger('infobox_open');
    676757                                                                });
    677758                                                        }
     
    679760                                                                // Ajouter l'infobox pour les anecdotes que l'on cache automatiquement
    680761                                                                infobox_update('<div class="close_box"><a href="#" onclick="return false;">x</a></div><div class="contenu contenu_fin"><:terraeco:anecdote_scroll:></div>',function(){
    681                                                                         jQuery('.'+infobox_class).fadeIn(500,function(){
    682                                                                                 jQuery(this).trigger('infobox_open');
    683                                                                         });
     762                                                                        jQuery('.'+infobox_class).fadeIn().trigger('infobox_open');
    684763                                                                });
    685764                                                        }
     
    725804                                                                        clearInterval(progress_mousedown);
    726805                                                                        if(jQuery('.'+infobox_class).is(':visible'))
    727                                                                                 jQuery('.'+infobox_class).fadeOut(500,function(){
    728                                                                                         jQuery(this).trigger('infobox_close');
    729                                                                                 });
     806                                                                                jQuery('.'+infobox_class).fadeOut().trigger('infobox_close');
    730807                                                                        e.preventDefault();
    731808                                                                        break;
     
    783860                                                 */
    784861                                                function draw(translatex){
    785                                                         d3.selectAll(".apresnaissance,.avtnaissance,.axis,.birth-line,.today-line,.ligne_naissance,.texte_naissance,.circle_naissance,.infos_dots,.legende").remove();
     862                                                        d3.selectAll(".apresnaissance,.avtnaissance,.axis,.birth-line,.today-line,.ligne_naissance,.texte_naissance,.circle_naissance,.infos_dots,.legende,.start-line,.bloc_yaxis").remove();
    786863                                                        d3.select(".paths")
    787864                                                                .attr("transform", "translate("+translatex+", 0)")
     
    884961                                                                                        function(){
    885962                                                                                                jQuery('.'+infobox_class).fadeIn(500,function(){
    886                                                                                                         jQuery(this).trigger('infobox_open');
    887963                                                                                                        jQuery(this).find('.close_box').on('click',function(){
     964                                                                                                                event.preventDefault();
     965                                                                                                                event.stopPropagation();
    888966                                                                                                                jQuery('.infos_dots.active').attr('class','infos_dots')
    889967                                                                                                                        .animate({'stroke-width':'3'},300);
    890                                                                                                                 jQuery('.'+infobox_class).fadeOut(500,function(){
    891                                                                                                                         jQuery(this).trigger('infobox_close');
    892                                                                                                                 });
     968                                                                                                                jQuery('.'+infobox_class).fadeOut().trigger('infobox_close');
    893969                                                                                                        });
    894                                                                                                 });
     970                                                                                                }).trigger('infobox_open');
    895971                                                                                        }
    896972                                                                                );
     
    10091085                                                                });
    10101086                                                }
     1087                                                jQuery('.'+infobox_class).on('infobox_close',function(){
     1088                                                        if(typeof(callback_infobox_close) == 'function'){
     1089                                                                callback_infobox_close()
     1090                                                        }
     1091                                                });
     1092                                                jQuery('.'+infobox_class).on('infobox_open',function(){
     1093                                                        console.log('infobox_open');
     1094                                                });
    10111095                                                </script>
    10121096                                </div>
Note: See TracChangeset for help on using the changeset viewer.