Kann mir jemand bei der Erstellung eines ausklappbaren Seitenmenüs mit Hamburger-Button helfen?

Hoffentlich kann mir hier jemand weiterhelfen.

Ich möchte ein ausfahrbares Seitenmenü mit einem Hamburger-Button (Font Awesome) konstruieren.

Im unteren Bild sieht man meinen momentanen Stand. Ich möchte aber, das von seitlich rechts das Menü hineinschwebt.

Zur Zeit habe ich Folgendes:

<nav role="main-navigation" aria-label="site" id="main-navigate" class="main-navi">
  <button aria-expanded="undefined"></button>
  <ul id="navlinks">
    <li class="sub-menue">
      <a class="a-link" href="/test/public/Testseite2-2.html">Blog Max Mustermann</a>
      <button aria-expanded="undefined"></button>
      <div class="nav-group">
        <a class="a-sublink" href="/test/public/Testseite2-2.html">UNTERMENUE 1-A</a>
        <a class="a-sublink" href="/test/public/Testseite2-2.html">UNTERMENUE 1-B</a>
      </div>
    </li>
    <li class="sub-menue">
      <a class="a-link" href="/test/public/Testseite2-2.html">Blog Erika Mustermann</a>
      <button aria-expanded="undefined"></button>
      <div class="nav-group">
        <a class="a-sublink" href="/test/public/Testseite2-2.html">UNTERMENUE 2-A</a>
        <a class="a-sublink" href="/test/public/Testseite2-2.html">UNTERMENUE 2-B</a>
        <a class="a-sublink" href="/test/public/Testseite2-2.html">UNTERMENUE 2-C</a>
      </div>
    </li>
    <li class="sub-menue">
      <a class="a-link" href="/test/public/Testseite2-2.html">Website Erika Mustermann</a>
      <button aria-expanded="undefined"></button>
      <div class="nav-group">
        <a class="a-sublink" href="/test/public/Testseite2-2.html">UNTERMENUE 3-A</a>
      </div>
    </li>
    <li class="sub-menue">
      <a class="a-link" href="/test/public/Testseite2-2.html">Impressum / Datenschutz</a>
      <button aria-expanded="undefined"></button>
      <div class="nav-group">
        <a class="a-sublink" href="/test/public/Testseite2-2.html">UNTERMENUE 4-A</a>
        <a class="a-sublink" href="/test/public/Testseite2-2.html">UNTERMENUE 4-B</a>
      </div>
    </li>
  </ul>
</nav>

Da mein Post zu lang wird, hier ein Downloadlink des JS, CSS und HTML: http://misanthrop.bplaced.net/downloads/seitliches_menue.txt

Könnte bitte jemand mir dabei helfen, dies zu entwickeln? Ein rudimentäres CodePen-Beispiel würde mir helfen.

Bild zum Beitrag
Homepage, HTML, Webseite, CSS, JavaScript, HTML5, Code, Webdesign, Webentwicklung
Webentwickler/Developer als Quereinsteiger?

Hallo,

ich mache eine Weiterbildung im Bereich Fullstack-Developer. Also Frontend und Backend zusammen.

Die Weiterbildung dauert ein Jahr und ich bin schon circa sechs Monate dabei und mir macht es riesigen Spaß. Ich kriege auch mit der Weiterbildung ein AZAV-Zertifikat und mache am Ende ein finales Projekt mit anderen Leuten zusammen.

Das Ziel ist natürlich, nach der Weiterbildung zu arbeiten. Vielleicht erst einmal zwei Monate Praktikum oder so. Allerdings höre ich von manchen, dass es sehr schwer ist, eine Arbeitstelle ohne irgendwelche Ausbildung oder Studium zu finden. Aber manch andere sagen, dass in diesem Bereich viel gefragt wird und auch Quereinsteiger fündig werden. Ich lebe in Berlin nur nebenbei erwähnt.

Also, was ich mache ist, dass ich auch eigene Projekte auf GitHub veröffentliche. Ich habe sogar eine Hotelseite mit einem Freund aus dem Kurs erstellt und schaue mir auch Udemy-Kurse an und mache auch dort Projekte. Auch auf der Seite Frontend Mentor mache ich die Seiten nach. Also ich übe selbständig auch neben der Weiterbildung viel, um auch zu zeigen, dass ich etwas mache.

Ich veröffentliche natürlich die Sachen auf GitHub, weil man das ja denke ich nachvollziehen kann, dass ich anstrebe, etwas zu lernen. Momentan haben wir HTML, CSS, SCSS, JavaScript, React gemacht. Die wende ich auch an und werde noch Tailwind CSS lernen.

Könnt ihr da vielleicht Erfahrungen mitteilen oder wenn ihr aus der Branche kommt: Könnt ihr sagen, wie das in der Realität aussieht? Ich bin auch ehrlich gesagt der einzige mit meinem Freund, der wert auf ein GitHub-Profil legt. Die anderen haben da gar nichts drin.

Hier auch mein GitHub, damit ihr mal einen Blick habt: https://github.com/Adem-Tozlu.

Sorry, dass ich soviel geschrieben habe. Ich habe halt viele Fragen im Kopf. :)

Job, HTML, IT, Webseite, CSS, JavaScript, developer, Programmiersprache, Webentwicklung
html: wie div boxen neben- und untereinander?

Hallo, in meiner Website sollen dienstleistungen aufgelistet werden.
Für die PC Ansicht, sollen diese (insgesamt 6) nebeneinander stehen.
Für die Tablet und Handy Ansicht sollen diese dann so umbrechen, das genug Platz ist, um sie noch zu lesen und sie nicht ineinander verschwimmen.
Ich habe jetzt hier versucht fürs Tablet drei Boxen nebeneinander und somit dann zwei Spalten zu haben, allerdings ist in jeder Ansicht jetzt alles untereinander und man muss auch noch zur Seite scrollen um den ganzen Text zu lesen (dies soll aber nicht sein).
Im Folgenden ist der Teil meiner CSS Datei:

.leistung {

padding: 15px;

margin: 15px;

}

.leistung-container {

display: flex;

flex-direction: column;

}

/* Layout für Tablet (teilweise nebeneinander, teilweise untereinander) */

@media (min-width: 25em) and (max-width: 45em) {

.leistung-container {

display: flex;

flex-wrap: wrap;

}

.leistungen {

flex: 1 1 calc(50% - 2em);

/* Zwei Boxen nebeneinander */

}

}

/* Layout für PC (nebeneinander) */

@media (min-width: 45em) and (max-width: 65em) {

.leistung-container {

display: flex;

flex-wrap: wrap;

}

.leistungen {

flex: 1 1 calc(33.33% - 2em);

/* Drei Boxen nebeneinander */

}

}

@media (min-width: 65em) {

.leistung-container {

display: flex;

flex-wrap: wrap;

}

.leistungen {

flex: 1 1 calc(33.33% - 2em);

/* Drei Boxen nebeneinander */

}

}

Ist da irgendwas falsch?
Könnt mir da jemand helfen?
Dankeschön

HTML, Webseite, programmieren, CSS, HTML5, Code, Programmiersprache, Webdesign, Webentwicklung, HTML-Editor, Website Design, webseite erstellung
DropDown-Menu Links für Handy?

wenn ich mein dropdown-menu habe, und ich will dass wenn sich dieses dropdown-menu öffnet und die kategorien zum auswählen bereitstellt, dass wenn ich auf die Kategorie klicke dann sich ein link öffnet, dies funktioniert mit meinem html code (auf der website version) perfekt, jedoch funktioniert dies nicht in der smartphone ansicht, warum das ?

Falls es hilft hier dier html-code

 

<!DOCTYPE html>

<html lang="en">

<head>

  <title>Language Selection</title>

  <style>

    /* Dropdown Button */

    .dropbtn {

      font-size: 16px; 

      border: none;

    }

    /* The container <div> - needed to position the dropdown content */

    .dropdown {

      position: relative;

      display: inline-block;

    }

    /* Dropdown Content */

    .dropdown-content {

      display: none;

      position: absolute;

      background-color: transparent;

      min-width: 100px;

      box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);

      z-index: 1;

      top: 100%;

      left: 50%;

      transform: translateX(-50%);

      margin: 8px 0;

    }

    /* Links inside the dropdown */

    .dropdown-content a {

      color: transparent;

    padding: 15px 13px; 

      text-decoration: none;

       

    }

    /* Change color of dropdown links on hover */

    .dropdown-content a:hover {

      background-color: transparent; /* Ändere die Hintergrundfarbe beim Hover */

    }

    /* Show the dropdown menu when hovering over the dropdown */

    .dropdown:hover .dropdown-content {

      display: block;

    }

    /* Keep the dropdown menu open when hovering over it */

    .dropdown:hover .dropbtn {

      background-color: transparent;

    }

     

  </style>

   

</head>

<body>

  <div class="gtco-loader"></div>

  <div id="page">

    <nav class="gtco-nav" role="navigation">

      <div class="container">

        <div class="row">

          <div class="col-sm-2 col-xs-12">

            <div id="gtco-logo"><a href="index.html">Endo<em>scopy</em></a></div>

          </div>

          <div class="col-xs-10 text-right menu-1 main-nav">

            <ul>

              <li class="active"><a href="#" data-nav-section="home">Home</a></li>

              <li><a href="#" data-nav-section="about">Über uns</a></li>

              <li><a href="#" data-nav-section="practice-areas">Anwendungsbereiche</a></li>

              <li><a href="#" data-nav-section="technics">Operationstechniken</a></li>

              <li><a href="#" data-nav-section="our-team">Unser Team</a></li>

              <li class="btn-cta"><a href="#" data-nav-section="contact"><span>Kontakt</span></a></li>

              <li class="dropdown">

                <div class="dropdown">

                  <a href="#" class="dropbtn">Deutsch ∨</a>

                  <div class="dropdown-content">

                    <p><a href="italiano.html" class="italiano">Italiano</a></p> 

                    <p><a href="english.html" class="english">English</a></p> 

                  </div>

                </div>

              </li>

            </ul>

          </div>

        </div>

      </div>

    </nav>

  </div>

  <script>

  // JavaScript to handle dropdown menu clicks

  document.addEventListener("DOMContentLoaded", function() {

    var dropdownButtons = document.querySelectorAll(".dropdown .dropbtn");

    var dropdownContents = document.querySelectorAll(".dropdown .dropdown-content");

    // Function to toggle the dropdown content visibility

    function toggleDropdown(index) {

      if (dropdownContents[index].classList.contains("show")) {

        dropdownContents[index].classList.remove("show");

      } else {

        dropdownContents[index].classList.add("show");

      }

    }

    // Close dropdown content if clicked outside the dropdown

    window.addEventListener("click", function(event) {

      if (!event.target.matches('.dropbtn')) {

        dropdownContents.forEach(function(content) {

          content.classList.remove("show");

        });

      }

    });

    // Handle dropdown button clicks

    dropdownButtons.forEach(function(button, index) {

      button.addEventListener("click", function(event) {

        event.stopPropagation(); // Prevent the document click event

        toggleDropdown(index);

      });

    });

    // Handle dropdown options clicks

    var dropdownOptions = document.querySelectorAll(".dropdown-content a");

    dropdownOptions.forEach(function(option) {

      option.addEventListener("click", function(event) {

        // Prevent default action

        event.preventDefault();

        // Redirect to the selected page

        window.location.href = option.getAttribute("href");

      });

    });

  });

</script>

</body>

</html>

HTML, Webseite, CSS, JavaScript, HTML5, Code, PHP, Programmiersprache, Webdesign, Webentwicklung
Fehler bei password verify php?

Ich habe ein Testprogramm geschrieben, in dem man ein Passwort eingibt, dass dann gehasht in einer Datenbank gespeichert wird. Wenn ich mit dem Passwort vergleiche kommt aber nicht true sondern false raus. Das ganze habe ich in WebFTP gemacht.

Als Ausgabe bekomme ich:

123456789 $2y$10$4TMgUO3xGJMCy5iZnd6Be.TBRkIO2Z55GGwgQ5oeToD.ryJZAvvte Richtig In Datenbank übertragen $2y$10$4TMgUO3xGJMCy5iZnd6Be.TBRkIO2Z55GGwgQ5oeToD.ryJZAvvte Falsch Richtig übertragen

Bedeutet das gehashte Passwort wurde richtig gespeichert, aber passwort verify hat beim zweiten mal false zurück gegeben.

Hier ist der php Teil dazu:

<?php
if (isset($_POST["start"])) {
    $password = $_POST["password"];
    $email = $_POST["email"];
    echo $password . " ";
    $passwordHash = password_hash($password, PASSWORD_DEFAULT);
    echo $passwordHash . " ";
    if (password_verify($password, $passwordHash)){
        echo "Richtig ";
    }else{
        echo "Falsch ";
    }
    require_once "data.php"; //Hier wird die Datenbankverbindung gespeichert
    $statement = $pdo->prepare("INSERT INTO tab (email, password) VALUES (?, ?)");
    $statement->execute(array($email, $passwordHash));
    if ($statement){
        echo "In Datenbank übertragen ";
        $sql = "SELECT * FROM tab WHERE email='$email'";
        $user = $pdo->query($sql)->fetch();
        $passwordTest = $user["password"];
        echo $passwordTest . " ";
        if (password_verify($password, $passwordTest)){
            echo "Richtig ";
        }else{
            echo "Falsch ";
            if ($passwordHash == $passwordTest){
                echo "Richtig übertragen ";
            }else{
                echo "Falsch übertragen ";
            }
        }
        die();
    }else{
        die("Es ist etwas schief gelaufen");
    }
}
?>
SQL, HTML, Webseite, CSS, JavaScript, HTML5, Code, Datenbank, MySQL, PHP, Programmiersprache, Webdesign, Webentwicklung, phpMyAdmin
HTML/CSS/JS: Warum funktioniert meine bindDelete-Funktion nicht und wie kann ich die Preisangaben untereinander formatieren?

Hi, ich habe an einen Spezialisten eine Frage:

import Order from './Order.js';
import ArticleModel from './ArticleModel.js';

export default function UserOrderViewHandler(articleModel) {
  this.articleModel = articleModel;
  this.order = new Order(-1, null, [], 0, 0, 0, 0, 0, false);
}

UserOrderViewHandler.prototype.renderPage = function() {
  let body = document.getElementsByTagName('body')[0];
  body.innerHTML = "";
  body.innerHTML = `<div class="container">
    <sidebar>
      <h1 class="mb-4">Unser Sortiment</h1>
      <div id="articleList">
        <div class="row space-between">
          <div class="col-md-4 mb-4">
            <div class="card" data-index="0">
              <div>
                <h2>Salamipizza</h2>
                <p>Halbe hausgemachte Pizza mit Käse und regionaler Salami</p>
                <p><strong>6.50 €</strong></p>
                <button class="addBtnClss btn btn-primary">Artikel hinzufügen</button>
              </div>
            </div>
          </div>
          <div class="col-md-4 mb-4">
            <div class="card" data-index="1">
              <div>
                <h2>Hamburger</h2>
                <p>Burger mit österreichischem Rindfleisch, Ketchup und Senf</p>
                <p><strong>6.00 €</strong></p>
                <button class="addBtnClss btn btn-primary">Artikel hinzufügen</button>
              </div>
            </div>
          </div>
          <div class="col-md-4 mb-4">
            <div class="card" data-index="2">
              <div>
                <h2>Wochenmenü</h2>
                <p>Frittatensuppe --- Spaghetti Bolognese --- Muffin</p>
                <p><strong>12.50 €</strong></p>
                <button class="addBtnClss btn btn-primary">Artikel hinzufügen</button>
              </div>
            </div>
          </div>
        </div>
      </div>
    </sidebar>
    <sidebar>
      <h1 class="mb-4 extramargin">Bestellung</h1>
      <ul id="order"></ul>
      <div class="form-group">
        <label for="pickupTime">Gewünschte Abholzeit:</label>
        <input type="time" id="pickupTime" class="form-control">
      </div>
    </sidebar>
  </div>`;
}

UserOrderViewHandler.prototype.renderOrder = function() {
  let orderElement = document.getElementById('order');
  orderElement.innerHTML = "";
  orderElement.className = "list-group";

  let i = 0;

  for (let article of this.order.articleList) {
    let articleElement = document.createElement('li');
    articleElement.className = "list-group-item d-flex justify-content-between align-items-center";
    articleElement.innerHTML = `
      <div>1 x ${article.name} &emsp; &emsp; &emsp;${article.price.toFixed(2)} €</div>
      <button class="delBtn btn btn-danger btn-sm" data-index="${i}">Entfernen</button>
    `;
    orderElement.appendChild(articleElement);
    i++;
  }
}

UserOrderViewHandler.prototype.bindAddBtn = function() {
  let buttons = document.getElementsByClassName('addBtnClss');
  const that = this;

  for (let button of buttons) {
    button.addEventListener('click', function() {
      let index = this.closest('.card').getAttribute('data-index');
      let article = that.articleModel.getByIndex(index);

      if (article) {
        that.order.addArticle(article);
        that.renderOrder();
      }
    });
  }
}

UserOrderViewHandler.prototype.bindDeleteBtn = function() {
  let orderElement = document.getElementById('order');
  orderElement.addEventListener('click', function(event) {
    if (event.target.classList.contains('delBtn')) {
      let index = event.target.getAttribute('data-index');
      that.order.deleteArticle(index);
      that.renderOrder();
    }
  });
}
  1. Warum funktioniert meine bindDelete-Funktion nicht, um die li-Elemente wieder zu löschen?
  2. Wie kann ich es schaffen, dass der Preis von jedem li-Element genau so untereinander ist, sodass man ihn schön zusammenrechen könnte:

Danke für die Hilfe.

Bild zum Beitrag
Homepage, HTML, Webseite, CSS, JavaScript, HTML5, Code, Programmiersprache, Webdesign, Webentwicklung, Frontend
HTML: Wie kann ich die Titelbox verschieben?

Hey,

ich verzweifle mittlerweile an meinen eigenen Sinnen und hab schon manches probiert. Das Einbinden von KI (ChatGPT) hat mir dann den Rest gegeben, da alles was davon kam einfach keinen Sinn ergab.

Ich habe zwei Container, also left-colum und right-colum.

Wie man in dem Code sehen kann, wird die Klasse "whatis-titlebox" im ersten Teil korrekt angezeigt. Es wird das Szenario eintreten, dass die linke Spalte leer beiben wird und nur die rechte mit Text gefüllt wird.

Dazu dachte ich mir, kopiere ich den Standardteil und spreche die Kopie dann mit "rightinput" um eben "whatis-titlebox" aus dem 2. Teil, also "rightinput whatis-titlebox" über die rechte colum zu legen, sodass der Text darin linksbündig mit dem Text sichtbar wird. Fehlanzeige, ich habe es nicht geschafft. Vielleicht ist mein Code auch einfach nur falsch geschrieben.

Ich blicke da nicht mehr durch und hoffe, dass ich hier Hilfe erhalte.

HTML:

<div class="leidfadenmain-input">
    <div class="whatis">
        <div class="whatis-titlebox">
            <h2 class="whatis-title-txt">Über</h2>
        </div>
        <div class="container">
            <div class="left-column">
                <!-- Linker Text -->
                <p class="whatis-txt"></p>
                <p class="whatis-txt"></p>
            </div>
            <div class="divider"></div>
            <div class="right-column">
                <!-- Rechter Text bei Bedarf -->
                <p class="whatis-txt"></p>
            </div>
        </div>
    </div>

    <div class="whatis">
        <div class="rightinput whatis-titlebox">
            <h2 class="whatis-title-txt">Über</h2>
        </div>
        <div class="container">
            <div class="left-column">
                <!-- Linker Text -->
            </div>
            <div class="divider"></div>
            <div class="right-column">
                <!-- Rechter Text bei Bedarf -->
                <p class="whatis-txt"></p>
            </div>
        </div>
    </div>
</div>

CSS:

.leidfadenmain-input {
    padding-top: 100px;
    display: flex;
    flex-direction: column;
}

.whatis {
    display: flex;
    flex-direction: column; /* Ändert die Ausrichtung auf vertikal */
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.whatis-txt {
    padding-bottom: 15px;
}

.whatis .whatis-titlebox {
    position: relative;
    margin-bottom: 20px;
    top: 0;
}

.rightinput .whatis-titlebox {
    margin-bottom: 20px;
    top: 0;
    left: 50%; /* Zentriert die Überschrift horizontal */
    transform: translateX(-50%); /* Zentriert die Überschrift horizontal */
}

.whatis .whatis-title-txt {
    font-size: 1.5em;
    font-weight: bold;
    margin-bottom: 10px;
}

.whatis .left-column,
.whatis .right-column {
    width: 45%;
}

.whatis .divider {
    width: 1px;
    height: auto;
    background-color: black; /* Ändere die Farbe bei Bedarf */
    margin: 0 10px;
}

.whatis .container {
    display: flex;
    align-items: stretch;
    width: 100%;
}

Einfach erklärt.: ".rightinput .whatis-titlebox" soll, sofern gebraucht, über right-colum platziert werden.

Sofern ihr mir weiterhelfen könntet, wäre ich euch dankbar!

Vielen Dank!

Liebe Grüße

HTML, Webseite, CSS, Code, Webdesign, Webentwicklung
Wünscht ihr euch auch dieses Buttonformat zurück?

Mir geht es sehr gegen den Strich, dass viele Anwendungen (wie auch gutefrage.net) die Buttons neuerdings 100% abrunden ... das sieht nicht nur klobig aus (da die runden Buttons breiter sind und so durch die größeren Rundungen Platz verloren geht), sondern wirkt auch unnatürlich: Genauso wie in der Natur nichts 100% eckig ist, ist dort auch wenig 100% abgerundet.
Die Änderung zerstört auch einen bestehenden Konsens über Web-Designsprache, die im Netz bisher eigentlich übereinstimmend verwendet wurde:

Tags waren diesem Konsens nach abgerundete Vierecke. Tags sind oft in Rastern angeordnet, bestehend aus >10 Einheiten; durch die Abrundung werden diese Raster etwas aufgelockert und wirken "luftiger". Hier ist es daher sogar wünschenswert, wenn die verfügbare Fläche nicht 100% genutzt wird.

Buttons hingegen waren nur ca. 20% abgerundet, wodurch sie massiver wirken und in Menüs hervorstehen. Anders als Tags existieren Buttons meistens nur einzeln oder paarweise, weshalb bei ihnen nicht die Aufklockerung des Gesamtgefüges, sondern die Betonung des einzelnen Elements im Vordergrund stehen sollte.

Webseiten wie gutefrage.net weichen diesen Konsens zunehmend auf, YouTube ist sogar soweit gegangen ihn mit der Implementierung von Material UI 3 vollständig umzukehren.

Bild zum Beitrag
Könnte mir nicht egaler sein 76%
Ja 18%
Dieser Post ist m.E.nur ein Versuch, Nostalgie zu rationalisieren 6%
Nein 0%
Internet, App, Kunst, Google, Designer, HTML, IT, Webseite, Design, CSS, Update, Webdesign
Html semibold und bold schauen gleich aus?

Hallo, ich arbeite aktuell an einem NextJS Projekt mit TailwindCSS. Mein Problem ist, dass Font-Weight 600 und 700, 100 bis 500 und 800 und 900 gleich ausschauen. Das ist aber auch bei einem Normalen HTML Dokument so.

Das Problem besteht in allen Browsern.
Danke für die Antwort im Vorraus.

Code zum Nachmachen:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Font Weight Test</title>
    <style>
        body {
            font-family: Arial, sans-serif; /* Using a widely available font */
        }
        .thin {
            font-weight: 100;
        }
        .light {
            font-weight: 300;
        }
        .normal {
            font-weight: 400;
        }
        .medium {
            font-weight: 500;
        }
        .semibold {
            font-weight: 600;
        }
        .bold {
            font-weight: 700;
        }
        .extrabold {
            font-weight: 800;
        }
        .black {
            font-weight: 900;
        }
    </style>
</head>
<body>
    <h1>Font Weight Test</h1>
    <p class="thin">This is thin text (100).</p>
    <p class="light">This is light text (300).</p>
    <p class="normal">This is normal text (400).</p>
    <p class="medium">This is medium text (500).</p>
    <p class="semibold">This is semibold text (600).</p>
    <p class="bold">This is bold text (700).</p>
    <p class="extrabold">This is extrabold text (800).</p>
    <p class="black">This is black text (900).</p>
</body>
</html>   
Bild zum Beitrag
HTML, Webseite, CSS, Mozilla Firefox, Google Chrome, HTML5, Code, Programmiersprache, Webdesign, Webentwicklung, Frontend, Visual Studio Code, Microsoft Edge
HTML, CSS, JavaScript Animation einfügen?

Ich habe folgenden Code, der bei Klick auf ein Menüpunkt einen bestimmten Code anzeigt.

Wie implementiere ich eine Fade-In und Fade-Out Animation.

Wenn z.B. gerade Content 1 angezeigt wird und man auf den Menüpunkt 2 klickt Content 2 angezeigt wird:

  • ...dass Content 1 von Opacity 100 auf 0 geht
  • ...dass Content 1 in Minus Y-Richtung 20px bewegt wird
  • ...dass Content 2 von Opacity 0 auf 100 geht
  • ...dass Content 2 von -20px in Plus Y-Richtung 20px bewegt wird

Alles in einer Zeit von 0,3 Sekunden.

Wie mache ich das am Besten?

Danke.

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>index</title>
<style>
  #wrapper_main {
    display: flex;
    width: 100%;
  }
  #wrapper_menue {
    width: 20%;
    margin-right: 10%;
  }
  #wrapper_content {
    width: 70%;
  }
  .menu-item, .submenu-item {
    cursor: pointer;
    padding: 10px;
    margin: 5px;
    background-color: #f0f0f0;
  }
  .menu-item:hover, .submenu-item:hover {
    background-color: #dddddd;
  }
  .content {
    display: none;
  }
  #submenu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease-in-out;
  }
  #wrapper_menue:hover #submenu {
    max-height: 200px;
  }
</style>
</head>
<body>
<div id="wrapper_main">
  <div id="wrapper_menue">
    <div class="menu-item" onclick="showContent('content_1')">Menüpunkt 1</div>
    <div class="menu-item" id="menu-item-2" onclick="showContent('content_2')">
      Menüpunkt 2
      <div id="submenu">
        <div class="submenu-item" onclick="showContent('content_2_1', event)">Submenüpunkt 1</div>
        <div class="submenu-item" onclick="showContent('content_2_2', event)">Submenüpunkt 2</div>
        <div class="submenu-item" onclick="showContent('content_2_3', event)">Submenüpunkt 3</div>
        <div class="submenu-item" onclick="showContent('content_2_4', event)">Submenüpunkt 4</div>
      </div>
    </div>
    <div class="menu-item" onclick="showContent('content_3')">Menüpunkt 3</div>
  </div>
  <div id="wrapper_content">
    <div id="content_1" class="content">
      <h2>Inhalt 1</h2>
    </div>
    <div id="content_2" class="content">
      <h2>Inhalt 2</h2>
    </div>
    <div id="content_2_1" class="content">
      <h2>Inhalt 2.1</h2>
    </div>
    <div id="content_2_2" class="content">
      <h2>Inhalt 2.2</h2>
    </div>
    <div id="content_2_3" class="content">
      <h2>Inhalt 2.3</h2>
    </div>
    <div id="content_2_4" class="content">
      <h2>Inhalt 2.4</h2>
    </div>
    <div id="content_3" class="content">
      <h2>Inhalt 3</h2>
    </div>
  </div>
</div>

<script>
function showContent(id, event) {
  if (event) {
    event.stopPropagation();
  }
  var contents = document.querySelectorAll('.content');
  contents.forEach(content => {
    content.style.display = 'none';
  });
  document.getElementById(id).style.display = 'block';
}
window.onload = function() {
  showContent('content_1');
};
</script>
</body>
</html>

Animation, Technik, HTML, Webseite, CSS, JavaScript, HTML5, Code, Programmiersprache, Webdesign, Webentwicklung, Frontend, Visual Studio Code
HTML Zufallsgenerator funktioniert nicht/keine Ausgabe?

Ich habe mir von ChatGPT einen Zufallsgenerator coden lassen. Jedoch kommt keine Augabe, bitte hilfe.

Das hier ist der Code btw

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Randomizer</title>

<style>

  body {

    font-family: Arial, sans-serif;

    text-align: center;

  }

  .column {

    float: left;

    width: 20%;

    padding: 10px;

  }

  /* Clear floats after the columns */

  .row:after {

    content: "";

    display: table;

    clear: both;

  }

</style>

</head>

<body>

  <h1>Randomizer</h1>

  <form>

    <div class="row">

      <!-- Column 1 -->

      <div class="column">

        <!-- Sentence Inputs -->

        <label for="sentence1">Sentence 1:</label>

        <input type="text" id="sentence1" name="sentence1"><br><br>

        <label for="sentence6">Sentence 6:</label>

        <input type="text" id="sentence6" name="sentence6"><br><br>

        <label for="sentence11">Sentence 11:</label>

        <input type="text" id="sentence11" name="sentence11"><br><br>

        <label for="sentence16">Sentence 16:</label>

        <input type="text" id="sentence16" name="sentence16"><br><br>

        <label for="sentence21">Sentence 21:</label>

        <input type="text" id="sentence21" name="sentence21"><br><br>

      </div>

      <!-- Column 2 -->

      <div class="column">

        <!-- Sentence Inputs -->

        <label for="sentence2">Sentence 2:</label>

        <input type="text" id="sentence2" name="sentence2"><br><br>

        <label for="sentence7">Sentence 7:</label>

        <input type="text" id="sentence7" name="sentence7"><br><br>

        <label for="sentence12">Sentence 12:</label>

        <input type="text" id="sentence12" name="sentence12"><br><br>

        <label for="sentence17">Sentence 17:</label>

        <input type="text" id="sentence17" name="sentence17"><br><br>

        <label for="sentence22">Sentence 22:</label>

        <input type="text" id="sentence22" name="sentence22"><br><br>

      </div>

      <!-- Column 3 -->

      <div class="column">

        <!-- Sentence Inputs -->

        <label for="sentence3">Sentence 3:</label>

        <input type="text" id="sentence3" name="sentence3"><br><br>

        <label for="sentence8">Sentence 8:</label>

        <input type="text" id="sentence8" name="sentence8"><br><br>

        <label for="sentence13">Sentence 13:</label>

        <input type="text" id="sentence13" name="sentence13"><br><br>

        <label for="sentence18">Sentence 18:</label>

        <input type="text" id="sentence18" name="sentence18"><br><br>

        <label for="sentence23">Sentence 23:</label>

        <input type="text" id="sentence23" name="sentence23"><br><br>

      </div>

      <!-- Column 4 -->

      <div class="column">

        <!-- Sentence Inputs -->

        <label for="sentence4">Sentence 4:</label>

        <input type="text" id="sentence4" name="sentence4"><br><br>

        <label for="sentence9">Sentence 9:</label>

        <input type="text" id="sentence9" name="sentence9"><br><br>

        <label for="sentence14">Sentence 14:</label>

        <input type="text" id="sentence14" name="sentence14"><br><br>

        <label for="sentence19">Sentence 19:</label>

        <input type="text" id="sentence19" name="sentence19"><br><br>

        <label for="sentence24">Sentence 24:</label>

        <input type="text" id="sentence24" name="sentence24"><br><br>

      </div>

      <!-- Column 5 -->

      <div class="column">

        <!-- Sentence Inputs -->

        <label for="sentence5">Sentence 5:</label>

        <input type="text" id="sentence5" name="sentence5"><br><br>

        <label for="sentence10">Sentence 10:</label>

        <input type="text" id="sentence10" name="sentence10"><br><br>

        <label for="sentence15">Sentence 15:</label>

        <input type="text" id="sentence15" name="sentence15"><br><br>

        <label for="sentence20">Sentence 20:</label>

        <input type="text" id="sentence20" name="sentence20"><br><br>

        <label for="sentence25">Sentence 25:</label>

        <input type="text" id="sentence25" name="sentence25"><br><br>

      </div>

    </div>

    <button type="button" onclick="generateRandomSentence()">Generate Random Sentence</button><br><br>

    <label for="result">Random Sentence:</label>

    <input type="text" id="result" readonly>

  </form>

  <script>

    function generateRandomSentence() {

      var sentences = [];

      // Get all sentence inputs and push their values into sentences array

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

        var sentence = document.getElementById("sentence" + i).value.trim();

        if (sentence !== "") {

          sentences.push(sentence);

        }

      }

      // If there are sentences in the array, choose one randomly and display it

      if (sentences.length > 0) {

        var randomIndex = Math.floor(Math.random() * sentences.length);

        document.getElementById("result").value = sentences[randomIndex];

      } else {

        document.getElementById("result").value = "No sentences provided";

      }

    }

  </script>

</body>

</html>

HTML, Webseite, CSS, JavaScript, HTML5, Code, Programmiersprache, Webentwicklung, Frontend
Warum kann ich meinen HTML- Code nicht mit meinem Python- Code verbinden?

Hallo,

ich wollte meinen Python- Code mit meinem HTML- Code verbinden, damit, wenn mein Wake- Word "Luna" erkannt wurde, ein div in der Datei index.html seine Farbe ändert. Hier ist der Code:

Python:

from flask import Flask, render_template
from flask_socketio import SocketIO, emit

app = Flask(__name__)
app.config['SECRET_KEY'] = 'luna_secret1984773249523'
socketio = SocketIO(app)


@socketio.on('connect')
def handle_connect():
    emit('message', {'data': 'Connected'})


@socketio.on('start_listening')
def start_listening():
    if detect_wake_word():
        emit('color_change', {'color': 'red'})


@app.route('/')
def index():
    return render_template('output.html')

HTML /CSS:

... #color_div {
    width: 100%;
    height: 100%;
    position: absolute;
    background-color: green;
}    
</style>
</head>
<body>
<div id="color_div"></div>

JavaScript:

... // FLASK
        var socket = io();

        socket.on('connect', function() {
            socket.emit('start_listening');
        });

        socket.on('color_change', function(msg) {
            document.getElementById('color_div').style.backgroundColor = msg.color;
        });
</script>
</body>
</html>
    """
    with open("output.html", "w") as html_file:
        html_file.write(html_content)

    return "output.html"

Wenn ich den Code aber ausführe und "Luna" sage, ändert der Div nicht seine Farbe. Woran liegt das?

Freundliche Grüsse

HTML, Webseite, CSS, JavaScript, HTML5, Code, Programmiersprache, Python, Webentwicklung, Frontend, Python 3, Flask

Meistgelesene Fragen zum Thema CSS