Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何添加一个效果,以便将鼠标悬停在SVG元素上使其变大?_Javascript_Svg - Fatal编程技术网

Javascript 我如何添加一个效果,以便将鼠标悬停在SVG元素上使其变大?

Javascript 我如何添加一个效果,以便将鼠标悬停在SVG元素上使其变大?,javascript,svg,Javascript,Svg,我有一个包含许多不同元素的复杂svg文件。我想给一些元素(或元素组)添加一个效果,使它们在悬停时变得更大。当指针离开其区域时,指针应返回其原始大小。做这件事的好方法是什么 我可以创建一个大型元素的隐藏副本,并在悬停时显示它们,然后隐藏它们,但有更好的方法吗?我可以使用一个图书馆,如果有一个非常有用的 这是一个简单的示例,它实现了D3.js的功能。这是一个很大的图书馆,但确实值得学习 <!DOCTYPE html> <html> <meta charset="utf-

我有一个包含许多不同元素的复杂svg文件。我想给一些元素(或元素组)添加一个效果,使它们在悬停时变得更大。当指针离开其区域时,指针应返回其原始大小。做这件事的好方法是什么


我可以创建一个大型元素的隐藏副本,并在悬停时显示它们,然后隐藏它们,但有更好的方法吗?我可以使用一个图书馆,如果有一个非常有用的

这是一个简单的示例,它实现了D3.js的功能。这是一个很大的图书馆,但确实值得学习

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"></script>
</head>
<body> 

<div id="viz"></div>
<script type="text/javascript">

var sampleSVG = d3.select("#viz")
    .append("svg")
    .attr("width", 100)
    .attr("height", 100);    

sampleSVG.append("circle")
    .style("stroke", "gray")
    .style("fill", "white")
    .attr("r", 14)
    .attr("cx", 50)
    .attr("cy", 50)
    .on("mouseover", function(){d3.select(this)
        .style("fill", "green")
        .transition()                      
        .duration(1000)
        .attr("r", 28);})
    .on("mouseout", function(){d3.select(this)
        .style("fill", "white")
        .transition()                      
        .duration(1000)
        .attr("r", 14);})

</script>
</body>
</html>

var sampleSVG=d3.选择(“即”)
.append(“svg”)
.attr(“宽度”,100)
.attr(“高度”,100);
sampleSVG.append(“圆”)
.style(“笔划”、“灰色”)
.样式(“填充”、“白色”)
.attr(“r”,14)
.attr(“cx”,50)
.attr(“cy”,50)
.on(“mouseover”,function(){d3.select(this)
.style(“填充”、“绿色”)
.transition()
.持续时间(1000)
.attr(“r”,28);})
.on(“mouseout”,function(){d3.select(this)
.样式(“填充”、“白色”)
.transition()
.持续时间(1000)
.attr(“r”,14);})

我认为Snap.svg会是您感兴趣的东西:d3.js非常适合这一点。谢谢这对作为复杂svg文件一部分的单个svg元素有效吗?是的,只要给svg元素一个id,然后添加d3.select(“#myid”)。或者添加一个类(如果您有很多)。鼠标悬停将处理类中的任何元素。