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

Wann verwendet man Tabellen und wann CSS (Erfahrungsaustausch)

Die Haupttextseite von TW hatte früher eine Breite...

Verwendung und Demonstration von ref in Vue

Ref-Definition: Wird verwendet, um Referenzinform...

So spielen Sie lokale Mediendateien (Video und Audio) mit HTML und JavaScript ab

Erstens kann JavaScript aus Sicherheitsgründen ni...

Die perfekte Lösung, um das Passwort in mysql8.0.19 zu vergessen

Lesetipp: MySQL 8.0.19 unterstützt Kontosperrfunk...

Detaillierte Erklärung dieses Zeigeproblems in der JavaScript-Funktion

dieses Schlüsselwort Welches Objekt ruft die Funk...

Richtige Methode zum Laden von Schriftarten in Vue.js

Inhaltsverzeichnis Schriftarten mit font-face ric...

Vue implementiert Multi-Tab-Komponente

Um die Wirkung direkt zu sehen, wurde ein Rechtsk...

Tabelle Tag (Tabelle) Im Detail

<br />Tabelle ist ein Tag, das schon seit la...

ElementUI implementiert kaskadierenden Selektor

In diesem Artikelbeispiel wird der spezifische Co...

Eine kurze Diskussion zur Auftragsrekonstruktion: MySQL-Sharding

Inhaltsverzeichnis 1. Ziele 2. Umweltvorbereitung...

CentOS7 verwendet RPM-Paket zur Installation von MySQL 5.7.18

veranschaulichen Dieser Artikel wurde am 20.05.20...