2017-07-23 7 views
0

Ich habe eine einfache CSS Bildergalerie und wenn Sie auf ein Bild klicken, öffnet das Skript ein neues modales (Pop-up) Fenster mit THREE.JS Szene, Das ist im Grunde auf Bilddaten aufgebaut.Three.JS läuft im modalen (Pop-up) Fenster

Das Problem ist, dass jedes Mal, wenn Sie das nächste Bild öffnen, alles langsam und langsam wird - das Skript tötet keine vorherigen Szenen und ihre Daten.

von Code sieht wie folgt aus (JQuery):

$(document).ready(function() { 

$("#modalClose").click(function(e) { $("#modalThree").css("display","none"); $("#group").show(); $("#container").empty(); while(scene.children.length > 0){ scene.remove(scene.children[0]); } }); 

     var gallerySize = 6; 

      for(var i = 1; i <= gallerySize; i++){ 

       $("#0" + i).click(function(e) { 

        $("#modalThree").css("display","block"); 

        $("#group").hide(); 

          loader.load(

          $(this).attr("src") , 

          function (texture) { init(texture); }, 
          function (xhr) { }, 
          function (xhr) { } 

         ); 

        });  

      } 

}); 

ziemlich sicher, dass ich brauche, um ‚zu töten‘ alle Variablen, Objekte, Geometrien, aber nicht wissen, wie es wäre, wenn jemand hier groß sein könnte mir helfen. Bitte.

Antwort

0

In Ihrem Beispiel Szene ist auf Dom bereit, nicht auf ein Klickereignis gelöscht.

diesen Code Versuchen:

$(document).ready(function() { 

    var gallerySize = 6; 

     for(var i = 1; i <= gallerySize; i++){    

      $("#0" + i).click(function(e) { 
       while(scene.children.length > 0){ scene.remove(scene.children[0]); } 
       $("#modalThree").css("display","block"); 

       $("#group").hide(); 

         loader.load(

         $(this).attr("src") , 

         function (texture) { init(texture); }, 
         function (xhr) { }, 
         function (xhr) { } 

        ); 

       });  

     } 

}); 
+0

Nicht wirklich, dann ist es an dem Pop-up „schließen " Veranstaltung. Etwas falsch geschriebene Version. – VVK

+0

Versuchen Sie auch 'scene = null' – stweb

0

Eigentlich wegen der wachsenden Anzahl der Zuhörer, verzögerungs passiert.

enter image description here

und Performance-Statistiken zeigen, dass es 34, dann 43, 46, 53, 56, 61, 64 und so weiter ...

Verwandte Themen