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

Setzen Sie den Eingang auf schreibgeschützt über deaktiviert und schreibgeschützt

Es gibt zwei Möglichkeiten, schreibgeschützte Eing...

Vue.js implementiert Musikplayer

In diesem Artikel wird der spezifische Code von V...

So installieren Sie eine MySQL-Datenbank unter Ubuntu

Ubuntu ist ein kostenloses und quelloffenes Deskt...

Extrahieren Sie bestimmte Dateipfade in Ordnern basierend auf Linux-Befehlen

In letzter Zeit besteht der Bedarf, automatisch n...

IIS und APACHE implementieren die HTTP-Umleitung auf HTTPS

IIS7 Laden Sie das HTTP Rewrite-Modul von der off...

Beispielerklärung von MySQL-Fremdschlüsseleinschränkungen

Die Fremdschlüsseleinschränkung von MySQL dient z...

MySQL-Cursor-Prinzip und Analyse von Anwendungsbeispielen

Dieser Artikel erläutert anhand von Beispielen di...

Beispiel für reines CSS zum Ändern des Bildlaufleistenstils des Browsers

Verwenden Sie CSS, um den Stil der Bildlaufleiste...