Maison  >  Article  >  interface Web  >  « Fonctionnalité de sélection/glisser-déposer dans les bibliothèques HTML5 Canvas et JS ?

« Fonctionnalité de sélection/glisser-déposer dans les bibliothèques HTML5 Canvas et JS ?

WBOY
WBOYavant
2023-09-02 11:13:021038parcourir

"HTML5 Canvas和JS库中的选择/拖放功能?"

Si vous souhaitez utiliser un canevas HTML5 pour dessiner des formes, du texte et des courbes, et que vous souhaitez également attacher des événements DOM traditionnels tels que la fonctionnalité onClick ou glisser-déposer, vous pouvez utiliser le framework Crossbar Raphael pour les opérations de glisser-déposer ou événements tactiles.

Cette technique utilise SVG et XML pour les anciennes versions d'IE. Le glisser-déposer à l'aide de HTML est illustré ci-dessous.

Exemple

<!DOCTYPE html>
<html lang = "en">
   <head>
      <meta charset = "utf-8">
         <title>Rapha&euml;l &middot; Drag-n-drop</title>
         <link rel = "stylesheet" href = "demo.css" type = "text/css" media = "screen">
         <meta name = "apple-mobile-web-app-capable" content = "yes">
         <link rel = "apple-touch-icon-precomposed" href = "/Raphael.png">
         <link rel = "stylesheet" href = "demo-print.css" type = "text/css" media = "print">
         <script src = "raphael.js"></script>
         <script>
            window.onload = function () {
               var R = Raphael(0, 0, "100%", "100%"),
               r = R.circle(100, 100, 50).attr({fill: "hsb(0, 1, 1)", stroke: "none", opacity: .5}),
               g = R.circle(210, 100, 50).attr({fill: "hsb(.3, 1, 1)", stroke: "none", opacity: .5}),
               b = R.circle(320, 100, 50).attr({fill: "hsb(.6, 1, 1)", stroke: "none", opacity: .5}),
               p = R.circle(430, 100, 50).attr({fill: "hsb(.8, 1, 1)", stroke: "none", opacity: .5});
            var start = function () {
               this.ox = this.attr("cx");
               this.oy = this.attr("cy");
               this.animate({r: 70, opacity: .25}, 500, ">");
            },
            move = function (dx, dy) {
               this.attr({cx: this.ox + dx, cy: this.oy + dy});
            },
            up = function () {
               this.animate({r: 50, opacity: .5}, 500, ">");
            };
            R.set(r, g, b, p).drag(move, start, up);
         };
      </script>
   </head>
   <body>
      <div id = "holder"></div>
      <p id = "copy">Demo of <a href = "http://raphaeljs.com/">Rapha&euml;l</a>&mdash; JavaScript Vector Library</p>
   </body>
</html>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer