首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移除外部边框

移除外部边框
EN

Stack Overflow用户
提问于 2013-10-25 14:49:20
回答 3查看 8.8K关注 0票数 5

如何删除jqplot的外部边框,请看下面的屏幕截图。我尝试了不同的选择,并寻找它,ButI没有得到一个解决方案。

这是我的密码

代码语言:javascript
复制
plot1 = $.jqplot(container, [data], {
        title: 'title',
        animate: true,
        animateReplot: true,
        seriesColors:['#00ADEE'],
        seriesDefaults: {
            renderer: $.jqplot.BarRenderer,
            shadow: false
        },
        axesDefaults: {
        },
        highlighter: {
            tooltipAxes: 'y',
            show: true,
            tooltipLocation: 'sw',
            formatString: '<table class="jqplot-highlighter"> \
      <tr><td>test:</td><td>%s</td></tr></table>'
        },
        grid: {borderColor: 'transparent', shadow: false, drawBorder: false, shadowColor: 'transparent'},
        axes: {
            xaxis: {
                renderer: $.jqplot.CategoryAxisRenderer,
                ticks:ticks
            },
            yaxis: {
                max:1000
            }
        }
    });

请帮帮我。提前谢谢。

这是JsFiddle 链接,我想移除外部边框。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-31 18:45:39

您可以在postDrawHooks中注册一个自定义函数,以便在插件初始化后触发。

其思想是使用此函数在图表顶部绘制一个白色边框,使外部边框不可见。

代码语言:javascript
复制
$.jqplot.postDrawHooks.push(function() {
    var $canvasMain = $("#chart1 canvas.jqplot-grid-canvas"),
        $canvasLines = $("#chart1 canvas.jqplot-series-canvas"),
        canvasSize = { 
            x: parseInt($canvasLines.attr('width')), 
            y: parseInt($canvasLines.attr('height'))
        },
        ctx = $canvasMain[0].getContext('2d');

    ctx.strokeStyle = 'white';
    ctx.lineWidth = 6; // 6 to hide shadows and the larger bottom side
    ctx.rect($canvasLines.position().left,
             $canvasLines.position().top,
             canvasSize.x,
             canvasSize.y + 3);
    ctx.stroke();    
});

jsFiddle

你可以看到外面的边界已经消失了:

这很好,但就我个人而言,我会继续修改源代码以跳过外部边框。这个插件有GPLv2和MIT的双重授权,所以我想这条路没有问题。

解决方案2

我发现如果你改变这个

代码语言:javascript
复制
grid: {borderColor: 'transparent', shadow: false, drawBorder: false, shadowColor: 'transparent'},

代码语言:javascript
复制
grid: {borderColor: 'white', shadow: false, drawBorder: true},

外部边框消失(就像我在上面所做的那样),但是x轴上仍然会出现一些勾号。我把showTickMarks: false设置为没有成功。

请参阅jsFiddle

票数 7
EN

Stack Overflow用户

发布于 2013-10-31 13:03:06

外部边界不是jqPlot边界,它们是最外层的网格线。因此,要删除这个“边框”,您需要关闭网格线。

可以通过添加以下内容来关闭这些网格线:

代码语言:javascript
复制
drawGridlines: false

你的网格属性。

代码语言:javascript
复制
grid: {
 drawGridlines: false,
 borderColor: 'transparent',
 shadow: false,
 drawBorder: false,
 shadowColor: 'transparent'
}

由于启用了突出显示选项,这将是一个可行的选项,因为当您悬停在它们上时,您可以看到它们的点值。

票数 6
EN

Stack Overflow用户

发布于 2014-03-02 00:43:08

简单地设置drawBorder:false对我来说是有效的:

代码语言:javascript
复制
grid: {drawBorder: false},
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19593051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档