javascript – 摆脱SVG循环元素上的别名

栏目: 后端 · 前端 · 发布时间: 6年前

内容简介:翻译自:https://stackoverflow.com/questions/34332615/getting-rid-of-aliasing-on-a-svg-circular-element

我正在制作动画SVG饼图.基本上我有两个SVG元素,第一个获得50%的边界半径,第二个是我填充到特定值的圆.最后,这使得一个圆圈位于另一个圆圈之上,它们都具有相同的尺寸.

有一种似乎很难摆脱的SVG别名.它在圆圈的顶部,左侧,底部和右侧“角落​​”非常明显,至少在Google Chrome上是如此.

这是 HTML 部分

<figure id="pie" data-percentage="60">
  <div class="receiver"></div>
  <svg width="200" height="200" class="chart" shape-rendering="geometricPrecision">
    <circle r="50" cx="100" cy="100" class="pie" shape-rendering="geometricPrecision"/>
  </svg>
</figure>

这是我的 codepen ,可以更准确地描述问题.我尝试了各种解决方案,包括形状渲染SVG属性但无济于事.

这是一个截图,别名不像在codepen中那样可见(至少对我来说)

javascript – 摆脱SVG循环元素上的别名

全svg百分比圈

我之前也遇到过这个问题: Pixel edge on circle

当您使用border-radius修改元素时会发生这种情况.

您可以在上面的链接答案中找到答案,

但我觉得如果你只使用/修改svg,它的性能和美学效果都会更好.

例:

var circ = document.getElementsByClassName("pie2");
var text = document.getElementsByClassName("text");
text = text[0];
circ = circ[0];
var maxvalue = 320;
var value = maxvalue;
var stop = false;

function increase() {
  if (value > 0) {
    circ.style.strokeDashoffset = value--;
    text.textContent = Math.abs(Math.floor((value / maxvalue) * 100) - 100) + "%";
  } else {
    clearInterval(intervalid);
  }
}

var intervalid = setInterval(increase, 25);
.pie {
  fill: none;
  stroke: #222;
  stroke-width: 99;
}
.pie2 {
  fill: none;
  stroke: orange;
  stroke-width: 100;
  stroke-dasharray: 320;
  stroke-dashoffset: 320;
}
.text {
  font-family: Arial;
  font-weight: bold;
  font-size: 2em;
}
<figure id="pie" data-percentage="90">
  <svg width="200" height="200" class="chart" shape-rendering="geometricPrecision">
    <circle r="50" cx="100" cy="100" class="pie" shape-rendering="geometricPrecision" />
    <circle r="50" cx="100" cy="100" class="pie2" />
    <text class="text" x="80" y="110">0%</text>
  </svg>
</figure>

翻译自:https://stackoverflow.com/questions/34332615/getting-rid-of-aliasing-on-a-svg-circular-element


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

腾讯产品法

腾讯产品法

李立 / 浙江大学出版社 / 2018-1 / 49元

从QQ到微信,从《英雄联盟》到《王者荣耀》,腾讯公司凭借强大的产品力成为世界互联网企业中的佼佼者,其“小步快跑,试错迭代”的产品开发机制,“别让我思考”的极简主义理念,“变成白痴级用户”的用户驱动战略,都成为整个中国互联网行业竞相学习的典范。 本书向读者完整地呈现了腾讯产品设计的底层思路,阐述了设计者如何发现问题、定义问题、拆解问题的全过程,从“产品思维”出发,以需求、战略、产品设计开发与运......一起来看看 《腾讯产品法》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具