javascript - 以一种颜色显示的 LinearGradient

标签 javascript jquery svg jquery-svg

有人能指出我这段代码有什么问题吗?

HTML:

<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>

<script type="text/javascript" src="js/jquery-1.7.1.js"></script>
<style type="text/css">@import "js/jquery.svg/jquery.svg.css";</style> 
<script type="text/javascript" src="js/jquery.svg/jquery.svg.js"></script>
<script type="text/javascript" src="js/svg.js"></script>

<body>
   <div id="svgintro" style="height:800px"></div>
</body>
</html>

JavaScript:

var defs=svg.defs();
svg.linearGradient(defs, 'gradient', [[0, 'white', 1], [1, 'red', 1]], 0, 0, 0, 100, {gradientUnits: 'userSpaceOnUse'});
svg.rect(20, 400, 1500, 40, 10, 10, {fill:'url(#gradient)'});

它始终显示一种颜色。

谢谢。

解决方案:

svg.linearGradient(defs, 'gradient', [['0%', 'white'], ['100%', 'red']], 20, 400, 20, 440, {gradientUnits: 'userSpaceOnUse'});

最佳答案

据我所知,这里的问题是,linearGradientx1, y1, x2, y2 属性是绝对坐标,而不是相对于您要应用渐变的对象。因此,您的渐变在 y:100 处结束,但矩形的顶部位于 y:400 处,因此它只会应用渐变的红色部分。

参见http://jsfiddle.net/nrabinowitz/VTKj2/1/例如,显示顶部位于 y:20 的矩形已正确应用渐变。

关于javascript - 以一种颜色显示的 LinearGradient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8809927/

相关文章:

javascript - 如何从已加载的资源中检索 SVG 数据?

javascript - 谷歌图表量规

javascript - jquery工具提示负位置

java - 有没有什么提示和技巧可以让 rhino 运行得更快?

jquery - 缩放后仍然无法计算出准确的宽度和高度

javascript - 如何从原型(prototype) "class"中调用原型(prototype)函数?

audio - 不允许将XHTML元素音频作为SVG元素的子元素

javascript - 我必须创建一个函数,它接受一个字符串数组并返回一个仅包含不以元音开头的字符串的数组

javascript - 使用不显示绝对 url 的 Angular ng-src

javascript - 通过 $.getscript() 获取脚本时添加自定义引用