Πώς να διαγράψετε κατά τη διάρκεια της κύλησης

Μάθετε πώς να χρησιμοποιείτε JavaScript και SVG για τη διαγραφή κατά τη διάρκεια της κύλησης.

Δοκιμάστε το προσωπικά

Σχεδιασμός κύλησης

Συμβολισμός SVG και JavaScript για τη διαγραφή τριγώνων κατά τη διάρκεια της κύλησης - Παρακαλώ σημειώστε ότι πρέπει να είναι <path> Element:

Instance

<svg id="mySVG">
  <path fill="none" stroke="red" stroke-width="3" id="triangle" d="M150 0 L75 200 L225 200 Z"/>
</svg>
<script>
// Λήψη του στοιχείου <path> με το ID "triangle"
var triangle = document.getElementById("triangle");
// Λήψη μήκους του στοιχείου <path>
var length = triangle.getTotalLength();
// Πρώτη θέση της διαγράψης (ορισμός μοτίβου διακύμμισης. Εδώ ορίζεται ως το ίδιο με το μήκος της διαδρομής, πράγματι θεωρείται η ολόκληρη η διαδρομή ως ένα "μεγάλο διακύμμιση".
triangle.style.strokeDasharray = length;
/* Ορισμός της απόκλισης της διακύμμισης. Πρώτα αρχικά ορίζεται ως μήκος διαδρομής, ώστε ολόκληρη η διαδρομή να αποκλίνει από την οπτική γωνία, κρύβοντας τον τρίγωνο.
Με την κίνηση κύλισης, αυτή η απόκλιση θα μειωθεί σταδιακά, εμφανίζοντας έτσι τον τρίγωνο.
Διαγραφή αυτής της γραμμής κώδικα μπορεί να εμφανίσει τον τρίγωνο πριν από την κίνηση κύλισης.
triangle.style.strokeDashoffset = length;
// Παρακολούθηση του γεγονότος κύλισης του παραθύρου και καλεί τη συνάρτηση myFunction κατά την κίνηση.
window.addEventListener("scroll", myFunction);
function myFunction() {
  // Υπολογισμός του ποσοστού κύλισης = (υψος κύλισης) / (υψος συνολικής κύλισης)
  var scrollpercent = (document.body.scrollTop + document.documentElement.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight);
  // Υπολογισμός της μήκους που πρέπει να γράφεται = συνολική μήκος * ποσοστό κύλισης
  var draw = length * scrollpercent;
  // Όταν κινείται προς τα πάνω, είναι στην πραγματικότητα μια αντίστροφη διαγραφή (από ολοκληρωμένη σε μη ολοκληρωμένη), οπότε εδώ χρησιμοποιούμε την συνολική μήκος μείον την μήκος που πρέπει να γράφεται.
  triangle.style.strokeDashoffset = length - draw;
}
</script>

Δοκιμάστε το προσωπικά

Σχετικές σελίδες

Εκμάθηση:Εκμάθηση SVG