Advertisement
fcamuso

Javascript Lezione 55

Jul 12th, 2022
1,080
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="EN">
  3. <head>
  4.     <meta charset="utf-8">
  5.     <title>DOM</title>
  6.  
  7.     <link rel="stylesheet" href="style.css">
  8.  
  9.     <style>
  10.         img {width: 50px; height: 50px;}
  11.         td, #img1 {border: 1px solid black;}
  12.         .testoRosso {color: red;}
  13.         .sfondoGiallo {background-color: yellow;}
  14.         .font35 {font-size: 35px;}
  15.         .font25 {font-size: 25px;}
  16.         span {font-size: 25px;}
  17.     </style>
  18.  
  19. </head>
  20. <body>
  21.     <div id='div1'>
  22.         <p id="p1" class="testoRosso sfondoGiallo">primo paragrafo</p>
  23.         <p id="p2">secondo paragrafo
  24.                    <img id="img1" src="teatro1.png">
  25.                    <img id="img2" src="teatro2.png">
  26.         </p>
  27.     </div>
  28.  
  29.     <div id='div2'>
  30.         <a href="https://www.bbc.com">sito bbc</a>
  31.     </div>
  32.  
  33.     Londra <input class="c1" type="checkbox" name="capitali" id="cb1">
  34.     Parigi <input class="c1" type="checkbox" name="capitali" id="cb2">
  35.     Roma   <input type="checkbox" name="capitali" id="cb3">
  36.     Madrid <input type="checkbox" name="capitali" id="cb4"> <br> <br>
  37.     Luogo nascita <input type="text" id="localita"> <br> <br>
  38.     Lingua madre <input type="text" id="lingua">
  39.  
  40.  
  41.     <script>  
  42.        //interna() forma una CLOSURE
  43.     //    function esterna(parametro)
  44.     //    {
  45.     //       let varEsterna = "varEsterna";
  46.  
  47.     //       function interna()
  48.     //       {
  49.     //         let varInterna = "varInterna";
  50.     //         console.log(varEsterna);
  51.     //       }
  52.  
  53.     //       return interna;
  54.     //    }
  55.        
  56.     //    let f = esterna('parametro');
  57.     //    f();
  58.  
  59.  
  60.        //test IIFE
  61.     //    (function f()
  62.     //    {
  63.     //       console.log("IIFE!");
  64.     //    }) ();
  65.        
  66.        //logica di acquisizione parametri e setup
  67.        function setupConfigurazione(){        
  68.          return {imgZoomWidth: '200px', imgZoomHeight: '200px'};
  69.        }
  70.  
  71.        //IIFE Immediately Invocated Function Expression
  72.        //associamo una tantum l'event handler all'elemento img2
  73.     //    (function setHandler()
  74.     //    {
  75.     //      let configurazione = setupConfigurazione();
  76.  
  77.     //      document.getElementById('img2')
  78.     //         .addEventListener('mouseover', function (e) {
  79.     //             console.log(configurazione);
  80.     //             this.style.width = configurazione.imgZoomWidth;
  81.     //             this.style.height = configurazione.imgZoomHeight;
  82.     //      });
  83.     //     }) ();
  84.  
  85.     //     setHandler();
  86.  
  87.     let configurazione = setupConfigurazione();
  88.  
  89.  
  90.     //    function setHandler()
  91.     //    {
  92.     //      let configurazione = setupConfigurazione();
  93.  
  94.     //      document.getElementById('img2')
  95.     //         .addEventListener('mouseover', function (e) {
  96.     //             console.log(configurazione);
  97.     //             this.style.width = configurazione.imgZoomWidth;
  98.     //             this.style.height = configurazione.imgZoomHeight;
  99.     //      });
  100.     //     };
  101.  
  102.  
  103.  
  104.        const img2 = document.getElementById('img2')
  105.           .addEventListener('mouseover',
  106.           (function (e) {
  107.              let configurazione = setupConfigurazione();
  108.              return function (e){
  109.                  this.style.width = configurazione.imgZoomWidth;
  110.                  this.style.height = configurazione.imgZoomHeight;
  111.              };
  112.           })());  
  113.  
  114.         //setHandler();
  115.  
  116.  
  117.  
  118.     // SOLUZIONE CHE USA VARIABILI GLOBALI: FORTEMENTE SCONSIGLIATA!
  119.     //    const configurazione = setupConfigurazione();
  120.  
  121.     //    const img2 = document.getElementById('img2')
  122.     //      .addEventListener('mouseover', function (e) {
  123.     //         this.style.width = configurazione.imgZoomWidth;
  124.     //         this.style.height = configurazione.imgZoomHeight;
  125.     //    });
  126.  
  127.  
  128.  
  129. </script>
  130. </body>
  131. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement