Vue macht Div-Höhe verschiebbar

Vue macht Div-Höhe verschiebbar

In diesem Artikel wird der spezifische Code von Vue zur Realisierung der verschiebbaren Höhe von Div zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Hier ist eine fertige Demo, die die Ziehfunktion des Seiten-Divs realisieren kann, aber der Effekt ist nicht ganz der gleiche wie ich ihn haben möchte, also habe ich ihn noch einmal entsprechend meinen tatsächlichen Anforderungen modifiziert. Schauen wir uns zuerst den aktuellen Demo-Effekt an.

<Vorlage>
  <div id="eagleMapContainer" style="border: 1px durchgezogenes Rot;overflow-y: auto;" title="">
    <div id="tz" @mousedown="dragEagle" style="border: 1px solid blue;">
      <div title="Ziehen, um die Größe zu ändern" id="move_tz" style="border: 1px solid green;"></div>
    </div>
  </div>
</Vorlage>

<Skript>
  Standard exportieren {
    Name: "eagleMap",
    Daten() {
      zurückkehren {}
    },
    Methoden: {
      dragEagle: Funktion (e) {
        var targetDiv = document.getElementById('eagleMapContainer'); 
        //Breite und Höhe des Kartencontainers beim Klicken ermitteln:
        var ZielDivHeight = ZielDiv.OffsetHeight;
        var startX = e.clientX;
        var startY = e.clientY;
        var _this = dies;
        document.onmousemove = Funktion (e) {
          e.preventDefault();
          //Breite und Höhe des Mauszeigers ermitteln: den absoluten Wert nehmen var distX = Math.abs(e.clientX - startX);
          var distY = Math.abs(e.clientY - startY);
          //Nach oben ziehen:
          wenn (e.clientY < startY) {
            targetDiv.style.height = targetDivHeight + distY + 'px';
          }
          //Nach unten ziehen:
          wenn (e.clientX < startX && e.clientY > startY) {
            targetDiv.style.height = (targetDivHeight - distY) + 'px';
          }
          wenn (parseInt(targetDiv.style.height) >= 300) {
            ZielDiv.Stil.Höhe = 300 + "px";
          }
          wenn (parseInt(targetDiv.style.height) <= 150) {
            ZielDiv.Stil.Höhe = 150 + 'px';
          }
        }
        dokument.onmouseup = Funktion () {
          Dokument.onmousemove = null;
        }
      }
    },
  };
</Skript>

<Stilbereich>
  #eagleMapContainer {
    Position: absolut;
    links: 13%;
    unten: 10px;
    Z-Index: 200;
    Überlauf: versteckt;
    Sichtbarkeit: sichtbar;
    Breite: 200px;
    Höhe: 200px;
  }

  #tz {
    Position: absolut;
    rechts: 1px;
    oben: 1px;
    Breite: 27px;
    Höhe: 20px;
    Cursor:ne-Größe ändern;
    Z-Index: 200001;
    Hintergrundbild: URL("");

  }

  #tz:hover {
    Hintergrundfarbe: #666;
  }

  #move_tz {
    Position: absolut;
    rechts: 0px;
    oben: 0px;
    Breite: 27px;
    Höhe: 20px;
    Cursor:ne-Größe ändern;
    Z-Index: 100;
    Hintergrundbild: URL("");
    Hintergrundposition: 0px 0px;
  }
</Stil> 

Der Effekt war aber nicht ganz so wie ich ihn wollte und ich musste ihn ein wenig modifizieren.

Der gewünschte Effekt ist: Ich habe ein Div, das viele kleine quadratische Listen enthält. Da das Scrollen über das Limit hinaus eingestellt ist, füge ich dem Div mit der Bildlaufleiste ein Ziehen hinzu, um eine Höhenänderung zu erreichen.

Der nächste Schritt besteht darin, die obige Demo umzuwandeln. Um es einfach zu machen, gehen Sie einfach zum Code:

Fügen Sie unterhalb des Divs, das nach oben gezogen werden muss, ein Div hinzu und klicken Sie auf dieses Div, um die Ziehfunktion zu starten.

<!-- Kleines Kästchen per Drag & Drop ziehen -->
    <div id="tz" @mousedown="dragEagle">
      <div title="Ziehen, um die Größe zu ändern" id="move_tz"></div>
    </div>

Sie müssen eine ID für das Div festlegen, das seine Höhe je nach Ziehen ändert (vorausgesetzt, es handelt sich um „fuDiv“), und dann eine Methode schreiben.

// ziehenEagle(e) {
        var targetDiv = document.getElementById('fuDiv');
        //Breite und Höhe des Kartencontainers beim Klicken ermitteln:
        var ZielDivHeight = ZielDiv.OffsetHeight;
        var startX = e.clientX;
        var startY = e.clientY;
        var _this = dies;
        document.onmousemove = Funktion (e) {
          e.preventDefault();
          //Breite und Höhe des Mauszeigers ermitteln: den absoluten Wert nehmen var distY = Math.abs(e.clientY - startY);

          //Nach oben ziehen:
          wenn (e.clientY < startY) {
            targetDiv.style.height = targetDivHeight - distY + 'px';
          }
          //Nach unten ziehen:
          wenn (e.clientX < startX && e.clientY > startY) {
            targetDiv.style.height = (targetDivHeight + distY) + 'px';
          }
          wenn (parseInt(targetDiv.style.height) >= 320) {
            ZielDiv.Stil.Höhe = 320 + 'px';
          }
          wenn (parseInt(targetDiv.style.height) <= 160) {
            ZielDiv.Stil.Höhe = 160 + "px";
          }
        }
        dokument.onmouseup = Funktion () {
          Dokument.onmousemove = null;
        }
      },

Legen Sie dann den CSS-Stil für sie fest. Tatsächlich ist dieser Teil unkompliziert und kann nach Ihren eigenen Wünschen gestaltet werden.

  #tz {
    Breite: 100 %;
    Höhe: 5px;
    Cursor: s-Größe ändern;
    Z-Index: 200001;
  }
  
  #move_tz {
    Breite: 100 %;
    Höhe: 5px;
    Cursor: s-Größe ändern;
    Z-Index: 100;
    Hintergrundbild: URL("");
    Hintergrundposition: 0px 0px;
  }

Endergebnis:

Die Wirkung ist nicht besonders gut und es gibt noch viele Bereiche, die einer Optimierung bedürfen, über die ich jetzt aber nicht schreibe.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So implementieren Sie verschiebbare Komponenten in Vue
  • Vue implementiert ein verschiebbares Dialogfeld
  • Beispielcode für eine schwebende, verschiebbare Vue-Schaltfläche
  • Vue implementiert die Draggable-Funktion des Element-UI-Dialogfelds
  • Implementierung des Draggable-Effekts der El-Dialog-Komponente im Vue-Projekt

<<:  Über die VMware vCenter-Sicherheitslücke beim unbefugten Hochladen beliebiger Dateien (CVE-2021-21972)

>>:  Erklärung des HTML-Codes der Webseite: geordnete Liste und ungeordnete Liste

Artikel empfehlen

Beispielcode für die Verwendung von @media in CSS3 zur Anpassung einer Webseite

Heutzutage wird die Bildschirmauflösung von Compu...

Eine kurze Analyse der Netzwerkprogrammierfunktionen von Linux

Inhaltsverzeichnis 1. Erstellen Sie einen Socket ...

Installations-Tutorial für die komprimierte Version von MySQL 5.7.18 Archiv

In diesem Artikel wird die spezifische Methode zu...

Shell-Skripteinstellungen zum Verhindern von Brute-Force-SSH

Das Shell-Skript richtet die Zugriffskontrolle ei...

Zusammenfassung wichtiger Komponenten von MySQL InnoDB

Innodb umfasst die folgenden Komponenten 1. innod...

Lassen Sie uns ausführlich über Vues Mixin und Vererbung sprechen

Inhaltsverzeichnis Vorwort Mischen Mixin-Hinweis ...

10 Best Practices zum Erstellen und Warten großer Vue.js-Projekte

Inhaltsverzeichnis 1. Nutzen Sie Slots, um Kompon...

Detaillierte Erklärung des TIMESTAMPDIFF-Falls in MySQL

1. Syntax TIMESTAMPDIFF(Einheit, Beginn, Ende); G...

So migrieren Sie SQLite zu einem MySQL-Skript

Ohne weitere Umschweife werde ich den Code direkt...

Verwendung und Optimierung der MySQL COUNT-Funktion

Inhaltsverzeichnis Was macht die Funktion COUNT? ...

Teilen Sie einen auf Ace basierenden Markdown-Editor

Ich denke, Editoren lassen sich in zwei Kategorie...

Implementierung der MySQL Master-Slave-Statusprüfung

1. Überprüfen Sie den Synchronisierungsstatus der...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.22 winx64

Das Tutorial zur Datenbankinstallation von MySQL-...