Hauptmenü

Werkzeuge

Kategorien

Archiv

Element in den Viewport eines Containers scrollen

Erstellt in Javascript am 12. Januar 2022 vom Daschmi

Mit folgender Funktion kann man einen Container so scrollen, das dass ausgewählte Element innerhalb des Containers sichtbar wird. Ich habe das ganze für Autocomplete Elemente genutzt.

let el_container = document.getElementById('container'); 
let e_element = document.getElementById('selected');

el_container.scrollTo({
    top: e_element.getBoundingClientRect().top - el_container.getBoundingClientRect().top + el_container.scrollTop
});

JSFiddle

Event mit Javascript manuell auslösen

Erstellt in Javascript am 26. Oktober 2021 vom Daschmi

Im folgenden Codeblock ist dargestellt, wie man mit Javascript ein Event (click, change, input etc.) programmatisch auslösen kann.

let el = document.getElementById('select');

el.addEventListener('select', (event) => {
  ..
});

el.dispatchEvent(new Event('change'));

Javascript forEach Schleife abbrechen

Erstellt in Javascript am 1. August 2021 vom Daschmi

Ein Callback der an eine forEach Funktion übergeben wurde kann die Schleife nicht mit return oder break beenden. Es geht aber über das Nutzen einer Exception.

try {
    			
    BigIPBlock.forEach(function(ip, long, index) {
    
        console.log(index, ip);
        
        if (index > 255) throw new Error();
    
    });

} catch (E) {
    
    console.log('To much IPs in block.');
    
}

Weiter Anker Scroll mit VanillaJS

Erstellt in Javascript am 30. Juli 2021 vom Daschmi

Mit folgenden Vanilla JS Code Schnipsel scrollen die Anker Links smart zu den Zielen.

for (let element of document.querySelectorAll('a[href^="#"]')) {
        
    element.addEventListener('click', (event) => {
        
        event.preventDefault();
        
        let hash = element.getAttribute('href');
        let target = document.getElementById(hash.substr(1));
        
        if (target !== null) {
        
            let rect = target.getBoundingClientRect();
            let top = (window.pageYOffset || document.documentElement.scrollTop) + rect.top;
                
            let offset = 92;
            
            window.scrollTo({
                top: top - offset,
                behavior: "smooth"
            });

        }
        
    });
    
}