javascript - JS 边框未显示 - 自定义图表 Jquery 函数

标签 javascript jquery html css border

我添加了一个圆环图。一切都很完美。我需要在圆圈内外添加边框。

我的代码:

<script>                                    
    $('.demo').diagram({
    size: "200", // graph size
    borderWidth: "40", // border width                                  
    bgFill: "#f5f5f5", // background color
    frFill: "#ed9705", // foreground color
    textSize: 40, // text color
    textColor: '#5a5a5a' // text color                                  
    });                                 
</script>

输出:

enter image description here

我正在尝试添加内部和外部边框,但运气不好

HTML

<p>
    <div class="demo roundGraph" data-percent="68%">
    </div>                          
</p>

整个 JS:

(function($) {

    $.fn.diagram = function(params){

        function rotate(angle) {
            return {
                "-webkit-transform": "rotate("+angle+"deg)",
                "-moz-transform": "rotate("+angle+"deg)",
                "-ms-transform": "rotate("+angle+"deg)",
                "-o-transform": "rotate("+angle+"deg)",
                "transform": "rotate("+angle+"deg)"
            };
        }

        var defaults = {
            size: "100",
            borderWidth: "10",
            bgFill: '#bbb',
            frFill: '#0bf',
            textSize: 50+'px',
            font: "serif",
            textColor: '#000'
        };

        var options = $.extend({}, defaults, params);

        var $this = $(this);
        var dataAttr = $this.data("percent");
        var data = parseFloat(dataAttr);

        var cssMain = {
            "position": "relative",
            "width": options.size+"px",
            "height": options.size+"px",
            "border": options.borderWidth + "px " + "solid" + options.bgFill,
            "border-radius": "50%",
            "z-index": "1"
        };

        var cssElems = {
            "position": "absolute",
            "top": -options.borderWidth+"px",
            "right": -options.borderWidth+"px",
            "bottom": -options.borderWidth+"px",
            "left": -options.borderWidth+"px",
            "border": options.borderWidth+"px " + "solid",
            "border-radius": "50%"
        };

        $this.css(cssMain);

        var text = $('<span></span>')
            .appendTo($this)
            .css({
                "display": "block",
                "position": "relative",
                "z-index": "2",
                "text-align": "center",             
                "border-radius": "50%",             
                "font-size": options.textSize,
                "font-family": options.font,
                "height": options.size+"px",
                "line-height": options.size+"px",
                "color": options.textColor
            })
            .text(dataAttr);

        var bg = $('<div></div>')
            .appendTo($this)
            .css(cssElems)
            .css({
                "border-color": options.frFill,
                "border-left-color": "transparent",
                "border-bottom-color": "transparent",
                "z-index": "1"
            });

        var fill = $('<div></div>')
            .appendTo($this)
            .css(cssElems)
                .css({
                "border-color": options.bgFill,
                "border-left-color": "transparent",
                "border-bottom-color": "transparent",
                "z-index": "1"
            });

        var angle;
        if (data >= 0 && data <= 50) {
            angle = (225 - 45)/50*data + 45;
        } else {
            angle = (405 - 225)/50*data + 225;
            fill.css({
                "border-color": options.frFill,
                "border-left-color": "transparent",
                "border-bottom-color": "transparent",
                "z-index": "1"
            });
        }

        bg.css(rotate(45));
        fill.css(rotate(angle));

        return this;
    };

})(jQuery);

这就是我现在使用的所有内容。有什么帮助吗?

这是我想要的输出 enter image description here

最佳答案

要正确显示边框,您需要指定 border-typeborder-color

试试这个:

 $('.demo').diagram({
   size: "200", // graph size
   border: "40px solid #000", // border                                  
   bgFill: "#f5f5f5", // background color
   frFill: "#ed9705", // foreground color
   textSize: 40, // text color
   textColor: '#5a5a5a' // text color                                  
 });

关于javascript - JS 边框未显示 - 自定义图表 Jquery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27936469/

相关文章:

javascript - 根据浏览器宽度只显示有限的 div

javascript - 使用 JQuery 替换文本

javascript - 有没有办法查看主浏览器窗口之外的内容?

html - 右对齐几个内联 block 中的最后一个

javascript - 如何使用jquery以黄色突出显示字符串的特定部分

Javascript sleep() 函数提前执行

javascript - JS 文件以 HTML 形式加载(通过 Markdown 生成)但未执行

javascript - 使用 JS/jQuery 将项目附加到存储在变量中的列表

javascript - 未捕获的类型错误 : undefined is not a function - GravityForms AJAX Spinner

html - div section 一页网站的100%高度