我有一个我创建的SVG图像。它是一个带圆圈的矩形。该圈子使用JavaScript跟随用户鼠标。该图像是由下面的代码表示:SVG背景可以交互吗?
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlspace="preserve" preserveAspectRatio="xMidYMin slic">
<style>
* { vector-effect:non-scaling-stroke }
rect { fill: blue; }
circle { fill:orange; opacity:0.75; }
</style>
<rect cx="50%" cy="0" width="720" height="1278" id="origin" />
<circle cx="50%" cy="116" r="72" id="dot" />
<script>
var svg = document.documentElement,
pt = svg.createSVGPoint(),
dot = document.querySelector('#dot');
svg.addEventListener('mousemove',function(evt){
var loc = cursorPoint(evt);
dot.setAttribute('cx',loc.x);
dot.setAttribute('cy',loc.y);
},false);
function rotateElement(el,originX,originY,towardsX,towardsY){
var degrees = Math.atan2(towardsY-originY,towardsX-originX)*180/Math.PI + 90;
el.setAttribute(
'transform',
'translate('+originX+','+originY+') translate('+(-originX)+','+(-originY)+')'
);
}
// Get point in global SVG space
function cursorPoint(evt){
pt.x = evt.clientX; pt.y = evt.clientY;
return pt.matrixTransform(svg.getScreenCTM().inverse());
}
</script>
</svg>
我想这个形象做的是把它作为一个CSS背景。如果我使用CSS将图像设置为背景,那么JavaScript不再起作用,即圆不再在光标后面。我相信这是由于这样一个事实,即当图像是背景时,它的顶部会堆叠其他元素。
那么我怎么能让图像成为背景并且保持互动?任何建议将不胜感激。
的Javascript图像中被禁用隐私的原因,而不是因为其他元素堆叠在顶部。恐怕,你无法做到这一点。 – 2013-04-07 07:26:55
我完全同意@RobertLongson,你将无法做到这一点,但我建议的一个方法是,使2个图像之一是互动和其他设置在背景中,如果我正确地理解你的问题! – 2013-04-07 08:51:03
如果不是背景,我可以与图像进行交互。例如,如果我将SVG包含在一个'img'标记或一个'object'标记中并绝对放置它,那么我可以与它进行交互。如果我改变z-index使其他东西堆叠在图像的顶部,我就无法再与它互动了。 – 2013-04-07 17:22:21