• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Style entfernen Best Practice JS

Oliver77

Mitglied
Hallo, hab mal ne Frage,
was ist best practice, um einen Style zu entfernen?


Javascript:
 mobileNav.style.left = null;
// oder
mobileNav.style.left = "";
Das mit Null habe ich irgendwo aufgeschnappt.
 
Werbung:
Und als dritte Antwort: Wenn es darum geht den Style nur aus einem bestimmten Element zu entfernen, dann geht ja auch:

Javascript:
element.removeAttribute('style');
 
Werbung:
Und als vierte Antwort, möglicherweise sollte auch das hier gehen um einen Wert komplett zurück zu setzen:

Code:
mobileNav.style.left = "unset";

Letztlich kommt es aber eben auch auf den Zusammenhang an in dem man das ausführen will. Ein Link wäre ggfs. sinnvoll um sich das anzuschauen.
 
Hi danke für die Antworten.


Und nochmal hier das Javascript:

Javascript:
let toggle = true, allowedToClick = true;
const mobileNav = document.getElementById("mobilenav"),
        innerArrow = document.getElementById("inner-arrow"),
        body = document.querySelector("body"),
        stack = document.getElementById("stack"),
         nav2 = document.getElementById("nav2"),
        speed = 400;

function shift() {
    mobileNav.classList.add("shift");
    setTimeout(() => {
        mobileNav.classList.remove("shift");
        allowedToClick = true;
    }, speed);
}

function stackPos() {
    let h = window.innerHeight;
    stack.style.top = h / 2 + "px";
    if(nav2.offsetHeight < h) {
        mobileNav.style.position = "fixed";
    nav2.style.top = h / 2 + "px";
    }
}

function isTouchDevice() {
    try {
        document.createEvent("TouchEvent");
        return true;
    } catch (e) {
        return false;
    }
}

function equalHeight() {
    let docBody = document.body,
            html = document.documentElement;

    let height = Math.max(docBody.scrollHeight, docBody.offsetHeight,
            html.clientHeight, html.scrollHeight, html.offsetHeight);
    mobileNav.style.height = height + "px";
}

stack.addEventListener("click", () => {
    if (toggle && allowedToClick) {
        allowedToClick = false;
        mobileNav.style.left = "0px";
        innerArrow.style.transform = "rotate(180deg)";
        shift();
        toggle = false;
    } else if (!toggle && allowedToClick) {
        allowedToClick = false;
        mobileNav.style.left = null;
        innerArrow.style.transform = "rotate(0deg)";
        shift();
        toggle = true;
    }
});

let mql = window.matchMedia("(orientation: portrait)");
if (!mql.matches && isTouchDevice()) {
    body.classList.add("landscape");
    equalHeight();
    stackPos();
}
mql.addListener(function (event) {
      nav2.style.top = null;
      mobileNav.style.position = null;
    if (event.matches && isTouchDevice()) {
        body.classList.remove("landscape");
        mobileNav.style.height = null;
        stack.style.top = null;

    } else if (!event.matches && isTouchDevice()) {
        body.classList.add("landscape");
        equalHeight();
        stackPos();
    }
});
//stackPos();
//equalHeight();
 
Zuletzt bearbeitet:
was ist best practice, um einen Style zu entfernen?
Garnicht. style sollte man garnicht manipulieren sondern die Darstellung über das Setzen/Entfernen von Klassen ändern. Evtl. lassen sich benötigte Werte als custom properties setzen, in dem Fall würde sich einiges durch reines CSS erschlagen lassen - ausprobieren lässt sich das nicht mehr da du in #5 den Link zu der Seite entfernt hast.
 
Werbung:
Garnicht. style sollte man garnicht manipulieren sondern die Darstellung über das Setzen/Entfernen von Klassen ändern. Evtl. lassen sich benötigte Werte als custom properties setzen, in dem Fall würde sich einiges durch reines CSS erschlagen lassen - ausprobieren lässt sich das nicht mehr da du in #5 den Link zu der Seite entfernt hast.
Ergänzend dazu: Einen style auf null zu setzen funktioniert zwar, allerdings ist dies nicht beabsichtigt und unzulässig. Das lässt sich zum Beispiel überprüfen, indem man in TypeScript einen style auf null setzt. Du wirst sehen, dass TS dir hier einen error zurückgibt.
 
Zurück
Oben