我有一個我創建的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