Altes Köln

Widget:GOV-Test: Unterschied zwischen den Versionen

Aus Altes Köln
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 6: Zeile 6:
     const serverBaseURL = "https://gov.genealogy.net";
     const serverBaseURL = "https://gov.genealogy.net";


    fetch('https://gov.genealogy.net/item/wikihtml/SCHERGJO54EJ')
        .then(response => response.text())
        .then(response => response.text())
         .then(html => {
         .then(html => {
             const tempDiv = document.createElement('div');
             const tempDiv = document.createElement('div');
             tempDiv.innerHTML = html;
             tempDiv.innerHTML = html;


             // Alle Links und Bilder anpassen
             // Anpassung relativer URLs
             const links = tempDiv.querySelectorAll('a[href^="/"]');
             const links = tempDiv.querySelectorAll('a[href^="/"]');
             links.forEach(link => {
             links.forEach(link => {
Zeile 22: Zeile 21:
             });
             });


             // Grafik mit Zoom-Effekt anpassen
             // Grafik ersetzen und Zoom-Wrapper hinzufügen
             const zoomImage = tempDiv.querySelector('td a[href*="relationshipGraph"] img');
             const zoomImage = tempDiv.querySelector('td a[href*="relationshipGraph"] img');
             if (zoomImage) {
             if (zoomImage) {
Zeile 29: Zeile 28:
                 zoomImage.parentElement.replaceWith(wrapper);
                 zoomImage.parentElement.replaceWith(wrapper);
                 wrapper.appendChild(zoomImage);
                 wrapper.appendChild(zoomImage);
                // Initiales Zoom-Level setzen
                zoomImage.dataset.scale = 1;
             }
             }


             document.getElementById('content').innerHTML = tempDiv.innerHTML;
             document.getElementById('content').innerHTML = tempDiv.innerHTML;
        })
        .catch(error => console.error('Error loading content:', error));


            // Beispiel für Styling
    // Zoom mit STRG + Mausrad
             const table = document.querySelector('#content table');
    document.addEventListener('wheel', (event) => {
             if (table) {
        if (event.ctrlKey) {
                 table.style.width = '100%';
             const zoomable = document.querySelector('.zoomable img:hover');
                 table.style.fontFamily = 'Arial, sans-serif';
             if (zoomable) {
                 const scale = parseFloat(zoomable.dataset.scale || 1);
                const newScale = event.deltaY < 0 ? scale * 1.1 : scale / 1.1;
                zoomable.style.transform = `scale(${newScale})`;
                 zoomable.dataset.scale = newScale;
                event.preventDefault(); // Standardverhalten verhindern
             }
             }
         })
         }
        .catch(error => console.error('Error loading content:', error));
    });
</script>
</script>


<style>
<style>
     /* Styling für zoombare Bilder */
     /* Zoomable Styles */
     .zoomable {
     .zoomable {
         position: relative;
         position: relative;
         display: inline-block;
         display: inline-block;
         overflow: hidden;
         overflow: hidden;
        cursor: zoom-in;
         max-width: 100%;
         max-width: 100%; /* Begrenzung auf Elternbreite */
        cursor: grab;
     }
     }


     .zoomable img {
     .zoomable img {
         transition: transform 0.3s ease;
         transition: transform 0.3s ease;
         width: 100%; /* Standardgröße */
         width: 100%;
         height: auto;
         height: auto;
     }
     }


     .zoomable:hover img {
     .zoomable img:hover {
        transform: scale(1.5); /* Zoom-Level */
         cursor: zoom-in;
         cursor: zoom-out;
     }
     }
</style>
</style>





Version vom 19. Januar 2025, 22:10 Uhr

Ajax-Variante mit wiki

<script>

   const serverBaseURL = "https://gov.genealogy.net";
        .then(response => response.text())
       .then(html => {
           const tempDiv = document.createElement('div');
           tempDiv.innerHTML = html;
           // Anpassung relativer URLs
           const links = tempDiv.querySelectorAll('a[href^="/"]');
           links.forEach(link => {
               link.href = serverBaseURL + link.getAttribute('href');
           });
           const images = tempDiv.querySelectorAll('img[src^="/"]');
           images.forEach(img => {
               img.src = serverBaseURL + img.getAttribute('src');
           });
           // Grafik ersetzen und Zoom-Wrapper hinzufügen
           const zoomImage = tempDiv.querySelector('td a[href*="relationshipGraph"] img');
           if (zoomImage) {
               const wrapper = document.createElement('div');
               wrapper.className = 'zoomable';
               zoomImage.parentElement.replaceWith(wrapper);
               wrapper.appendChild(zoomImage);
               // Initiales Zoom-Level setzen
               zoomImage.dataset.scale = 1;
           }
           document.getElementById('content').innerHTML = tempDiv.innerHTML;
       })
       .catch(error => console.error('Error loading content:', error));
   // Zoom mit STRG + Mausrad
   document.addEventListener('wheel', (event) => {
       if (event.ctrlKey) {
           const zoomable = document.querySelector('.zoomable img:hover');
           if (zoomable) {
               const scale = parseFloat(zoomable.dataset.scale || 1);
               const newScale = event.deltaY < 0 ? scale * 1.1 : scale / 1.1;
               zoomable.style.transform = `scale(${newScale})`;
               zoomable.dataset.scale = newScale;
               event.preventDefault(); // Standardverhalten verhindern
           }
       }
   });

</script>

<style>

   /* Zoomable Styles */
   .zoomable {
       position: relative;
       display: inline-block;
       overflow: hidden;
       max-width: 100%;
       cursor: grab;
   }
   .zoomable img {
       transition: transform 0.3s ease;
       width: 100%;
       height: auto;
   }
   .zoomable img:hover {
       cursor: zoom-in;
   }

</style>


Variante: Einfacher iframe mit

 

Variante: responsiv mit

<style>

   body {
     margin: 0;
     padding: 0;
     font-family: Arial, sans-serif;
   }
   .iframe-container {
     width: 100%; /* Container hat immer die volle Breite des Viewports */
     position: relative; /* Wichtig für absolute Positionierung */
     padding-top: 56.25%; /* Seitenverhältnis 16:9 */
  
   }
   iframe {
     position: absolute;
     top: 0;
     left: 0;
     width: 100vw; /* Breite des Viewports */
     height: calc(100vw * 0.5625); /* Höhe proportional zur Breite (16:9) */
     transform-origin: top left; /* Skalierung startet oben links */
   }
   /* Media Queries für kleinere Bildschirme */
   @media (max-width: 768px) {
     iframe {
       transform: scale(0.9); /* Skaliere den iframe-Inhalt */
     }
   }
   @media (max-width: 480px) {
     iframe {
       transform: scale(0.8); /* Weitere Skalierung für kleine Geräte */
     }
   }
 </style>
 





Cookies helfen uns bei der Bereitstellung von Altes Köln. Durch die Nutzung von Altes Köln erklärst du dich damit einverstanden, dass wir Cookies speichern.