草庐IT

javascript - 动态添加 SVG 渐变

我有这个带有路径的SVG容器。我想编辑它,所以路径的填充将是一种模式。这是我失败的尝试:我添加一个渐变:$('svgdefs').prepend('');然后更改路径的填充:$(base+'svgpath').each(function(){this.setAttribute('fill','url(#MyGradient)')}这行不通。我错过了什么? 最佳答案 您的问题(您“缺少的”)是jQuery在XHTMLnamespace中创建新元素,而SVG元素必须在SVGnamespace中创建。您不能在SVG元素的字符串中使用原始代

javascript - Angular 2 - 如何将 SVG 属性数据绑定(bind)到组件属性?

我正在学习Angular2。为此,我正在尝试创建基本示例。我有一个包含此字符串的变量的类:M916.2L4.812l-1.41.4L919217l-1.4-1.4L916.2z我正在尝试将该字符串用作svg元素的参数只是为了检查:这个svg有效:模板中的变量icon包含正确的字符串。我正在尝试这样做:并将"添加到参数d中。但我无法使其工作 最佳答案 您需要使用attributebinding带有SVG元素: 关于javascript-Angular2-如何将SVG属性数据绑定(bind)

javascript - d3js 拖动圆应该重新排列主边界圆中的其他圆

我有基于thistutorial的气泡图.我已使用以下代码启用气泡拖动。这使得单个圆圈可拖动,但在拖动一个圆圈时,其他圆圈不会自动调整。我正在使用包圈算法,请告诉我这个算法是否可行。这是我的拖动代码://draggableif(this.dragging){vardrag=d3.behavior.drag().on("drag",function(d,i){varselection=d3.selectAll('.selected');if(selection[0].indexOf(this)==-1){selection.classed("selected",false);select

javascript - 动态禁用 SVG 元素的触摸操作(过度滚动)

我在Chrome上遇到触摸屏过度滚动的问题。我有一个包含SVG元素的文档,其中包含一些形状,比如一个矩形:现在,我想使矩形可拖动,这意味着我想禁用相应上的各种触摸操作。元素,通过设置它的样式属性touch-action:none.这在除Chrome之外的所有桌面浏览器上都能正常工作。在Chrome上,当我在一个矩形上触摸并移动时,浏览器的过度滚动功能会启动。这会导致浏览器窗口笨拙地移动,以及我在矩形上设置的所有指针事件都被取消。即pointermove注册几分之一秒,然后在过度滚动开始时停止。pointerup即使在触摸被释放时也不会被调用。现在,如果我有一个HTML元素而不是SVG元

javascript - D3 - Sunburst 图中的过渡弧

我有一张用D3制作的旭日图。每个“花瓣”代表一个数据子集。当用户点击其中一个“花瓣”时,我希望它进行转换,散开以仅显示该子集(见图):我无法让代码正确转换。单击时,所有“花瓣”(除了选定的花瓣)都应消失,其余路径应沿圆圈设置动画(使用attrTween、arcTween和插值?)。将要更改的主要值是angleSize(varangleSize=(2*Math.PI)/theData.length;)。我试过使用this,this,this,和this作为引用没有太大的成功。处理动画的最佳方式是什么?感谢您的宝贵时间!-->参见PlunkerHere.代码如下:varcolors={'R

javascript - react-native-svg 中 <Rect/> 的动画宽度

我为进行了简单的动画插值元素,但是我在我的用户界面上没有看到任何变化,就好像宽度保持为0。我手动将我的最终值添加到组件中作为width={149.12}并且显示正确,因此我现在有点困惑为什么它没有从动画中获取相同的值?react-native@0.57.1​​react-native-svg@7.03针对iOS12这是完整的实现,本质上是一个包含当前值和总值的法力和健康条,即50和100应该显示矩形的一半宽度。(示例使用typescript,但如果需要,答案可以用纯js编写)import*asReactfrom'react'import{Animated}from'react-nati

javascript - SVG 捕获鼠标坐标

我知道之前有人在这里问过关于svg鼠标坐标的问题,但我对我目前遇到的行为感到很困惑,似乎没有一个线程能完全解决它。我用来捕捉坐标的方法:varpt=svg.createSVGPoint();//Createdoncefordocumentfunctionalert_coords(evt){pt.x=evt.clientX;pt.y=evt.clientY;//Thecursorpoint,translatedintosvgcoordinatesvarcursorpt=pt.matrixTransform(svg.getScreenCTM().inverse());console.log

javascript - 响应式或流畅布局的跨浏览器 SVG?

我选择使用Raphaëljavascript库以获得广泛的浏览器支持,但我无法让SVG在除Chrome和Firefox之外的任何浏览器中正确显示。我已经为此绞尽脑汁一段时间了,很想听听如何让SVG在响应式布局中工作。Chrome和Firefox完全按照我的意愿显示SVG。它统一缩放,保持正确的纵横比和给定宽度的父级百分比。InternetExplorer保持正确的宽高比,但不能与其父级一起正确缩放。Safari在宽度上与其父级正确缩放,但在高度上不行。相对于父容器的高度以某种方式设置为100%。Javascriptvarmenu=Raphael('menu','100%','100%'

javascript - 为图表中的所有 d3.js 数据点添加唯一链接

我正在使用nvd3.js创建一个折线图来显示我随时间计算的评分。我有每个单独的数据点(评级)的更多信息,并且希望图表上的每个数据点链接到一个唯一的页面,其中包含有关该特定数据点的更多信息。例如:我希望能够将鼠标悬停在图表上的第一个数据点(x:1345457533,y:-0.0126262626263)上并单击它以转到特定页面(http://www.example.com/info?id=1),提供有关该评级或数据点的更多信息。每个数据点都有一个唯一的ID和我想链接到的唯一URL。这是我用来生成图表的代码:nv.addGraph(function(){varchart=nv.models

javascript - Joint.js 添加带有路径类的自定义端口。对于自定义元素

我想做的是为端口和路径创建一个带有自定义类的元素,这样我就可以添加一个带有自定义路径的元素和我自己的端口标记。这样当我创建一个元素时,我将传递动态路径它的形状就像路径类的元素一样,而且我也从PortsModelInterface扩展了我也将有我自己的端口标记。整个工作是为了使svg可缩放以进行缩放。以前我将html自定义元素与我的自定义端口一起使用,它工作正常,但自定义元素的html在缩放时没有缩放vargraph=newjoint.dia.varpaper=newjoint.dia.Paper({el:$('#paper'),width:800,height:600,gridSize