javascript - Raphael js在具有指定类的所有元素中绘制圆圈

标签 javascript drawing raphael

我刚刚发现了 Raphael,并且喜欢上了它,但我并不是一个 JavaScript 爱好者。现在我有三个重复的代码段来在三个不同的 div 中绘制同一个圆。在 Raphael 中制作 Canvas 的默认设置是按 ID 查找元素,但我希望有一组变量在所有类为“circle”的 div 中绘制圆圈。我认为必须有一种更有效的编码方式。这是我现在使用的代码:

window.onload = function () {
    var paper = Raphael("c1", 26, 26); /* Make canvas 26*26px in div id "c1" */
    var circle = paper.circle(13, 13, 10.5); /* Draw circle at the center of the canvas with radius 10.5  */
    circle.attr("stroke", "#f1f1f1");
    circle.attr("stroke-width", 2);
    var text = paper.text(13, 13, "1"); /* Print text "1" inside the circle  */
    text.attr({'font-size': 15, 'font-family': 'FranklinGothicFSCondensed-1, FranklinGothicFSCondensed-2'});
    text.attr("fill", "#f1f1f1");

    var paper2 = Raphael("c2", 26, 26);
    var circle2 = paper2.circle(13, 13, 10.5);
    circle2.attr("stroke", "#f1f1f1");
    circle2.attr("stroke-width", 2);
    var text2 = paper2.text(12, 13, "2");
    text2.attr({'font-size': 15, 'font-family': 'FranklinGothicFSCondensed-1, FranklinGothicFSCondensed-2'});
    text2.attr("fill", "#f1f1f1");

    var paper3 = Raphael("c3", 26, 26);
    var circle3 = paper3.circle(13, 13, 10.5);
    circle3.attr("stroke", "#f1f1f1");
    circle3.attr("stroke-width", 2);
    var text3 = paper3.text(12, 13, "3");
    text3.attr({'font-size': 15, 'font-family': 'FranklinGothicFSCondensed-1, FranklinGothicFSCondensed-2'});
    text3.attr("fill", "#f1f1f1");
};

测试站点是@http://jesserosenfield.com/fluid/test.html

非常感谢您的帮助!

最佳答案

定义一个接受 div 参数的函数,以便您可以自动执行该过程:

function drawcircle(div, text) { 
    var paper3 = Raphael(div, 26, 26); //<<
    var circle3 = paper3.circle(13, 13, 10.5);
    circle3.attr("stroke", "#f1f1f1");
    circle3.attr("stroke-width", 2);
    var text3 = paper3.text(12, 13, text); //<<
    text3.attr({'font-size': 15, 'font-family': 'FranklinGothicFSCondensed-1, FranklinGothicFSCondensed-2'});
    text3.attr("fill", "#f1f1f1");
}

然后在你的window.onload中:

window.onload = function () {
    drawcircle("c1", "1");
    drawcircle("c2", "2");
    drawcircle("c3", "3");
};

关于javascript - Raphael js在具有指定类的所有元素中绘制圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2545962/

相关文章:

javascript - 如何将 Angular ngmodel 与 jQuery UI slider 一起使用?

javascript - href 和 js 一起工作在 html 上

javascript - 在不使用窗口和文档对象的情况下在外部单击时隐藏 div

javascript - jQuery 中的 offsetParent() 未返回预期的相对定位祖先

javascript - Firefox 3.0.12 中的 Raphael JS 问题

javascript - 如何使用 Raphael 将移动的圆圈动画化为更大的圆圈?

.net - 窗体转图片

ios - Swift 3.0 绘制具有相同起始角度和结束角度的圆,结果成直线

objective-c - 在 Objective-c 中绘图 (iOS)

javascript - 拉斐尔的动画范例