PHP前端开发

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

百变鹏仔 3个月前 (09-22) #HTML
文章标签 拖放

如果你想使用 HTML5 canvas 来绘制形状、文本和曲线,并且还想附加传统的 DOM 事件,如 onClick 或拖放功能,可以使用 Crossbar 框架 Raphael 来进行拖放操作放下或触摸事件。

此技术针对旧版本的 IE 使用 SVG 和 XML。使用 HTML 进行拖拽如下所示。

示例

<!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>