传单中圆圈的渐变填充
Gradient fill for circle in Leaflet
我正在寻找一种在传单中使用渐变填充创建圆的方法。到目前为止,我的方法是将圆的fillColor定义为"url(#gradient)",并通过以下代码手动添加gradient定义:
function createGradient (map) {
// Get the SVG element from the overlayPane
var svg = map.getPanes().overlayPane.firstChild;
var doc = document.implementation.createDocument(null, null, null);
// Create def element
var svgDef = doc.createElement('defs');
// Create gradient and stops element
var svgGradient = doc.createElement("radialGradient");
var svgStart = doc.createElement('stop');
var svgStop = doc.createElement('stop');
// Set ID attribute of gradient
svgGradient.setAttribute('id', 'gradient');
// set stops and colors
svgStart.setAttribute('offset', '0%');
svgStop.setAttribute('offset', '100%');
svgStart.setAttribute('class', 'circle-start');
svgStop.setAttribute('class', 'circle-stop');
svgGradient.appendChild(svgStart);
svgGradient.appendChild(svgStop);
// Append blur element to filter element
svgDef.appendChild(svgGradient);
// Append filter element to SVG element
svg.appendChild(svgDef);
}
有趣的是,渐变填充最初没有显示。然而,如果我进入devtools,删除"defs"块并再次添加它,梯度填充就会正确显示。有人能帮我解决这个问题吗?或者用另一种方法来填充渐变?
您不能使用createElement创建SVG元素,这只适用于html元素。如果要创建SVG元素,则必须使用createElementNS(即)在SVG命名空间中创建一个元素
var svgDef = doc.createElementNS('http://www.w3.org/2000/svg', 'defs');
// Create gradient and stops element
var svgGradient = doc.createElementNS("http://www.w3.org/2000/svg", "radialGradient");
var svgStart = doc.createElementNS('http://www.w3.org/2000/svg', 'stop');
var svgStop = doc.createElementNS('http://www.w3.org/2000/svg', 'stop');
使用devtools在内容上重新运行html解析器,从而神奇地更正名称空间。
相关文章:
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- 用与线条相同的颜色填充多折线图上的点
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 用我的json数据填充JQuery DataTable
- 使用 jQuery 检查所有值是否为空或已填充
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 传单中圆圈的渐变填充
- 如何将渐变的底部锚定到它在 HTML5 画布中填充的容器
- 折线图上的渐变填充(高图表)
- 渐变填充和画布大小
- 渐变填充颜色和隐藏图像
- 在for循环中渐变填充空白
- SVG操纵渐变填充颜色
- RaphaelJS与rgba渐变填充
- 动态颜色填充渐变不起作用
- 通过javascript添加元素后,CSS渐变不填充容器
- Highchartssolidgauge:如何禁用渐变填充