我想点击一个 DIV 元素并放置圆圈......什么是最好的方法。我想放置数百个小圆圈,直径约 5 像素,有时重叠。然后,当我拥有我想要的所有圆圈时,我需要保存这个模式。
任何人都可以建议一个好的起点吗?
仅供参考...我在 Linux 服务器 LAMP 堆栈上。
------------------ 好的,在最初的建议之后添加了我的代码。
除了隐藏动态创建的圆圈外,代码有效???任何想法(固定见下文)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
/*<![CDATA[*/
div{
width: 200px;
height: 200px;
background-color: #0033FF;
}
/*]]>*/
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
//<![CDATA[
var X = 0, Y = 0;
$('.clickInHere').live('mousemove', function(e){
$('h1').html(e.pageX + ' - ' +e.pageY);
X = e.pageX;
Y = e.pageY;
});
$('.clickInHere').live('click', function(e){
$('#circlesHere').append('<circle cx="' + X + '" cy="' + Y + '" r="5" stroke="black" stroke-width="2" fill="none"/>'); // NOTE: THIS DIDN'T WORK PROPERLY... SEE BOTTOM
});
// ]]>
</script>
</head>
<body>
<div class="clickInHere"></div>
<div class="circleContainer" style="background-color: #eee;">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="width: 100%; height: 100%;" id="circlesHere"></svg>
</div>
<h1></h1>
</body>
</html>
- - - 更新 - -
好的,所以动态创建的圆圈没有显示,因为我创建它们不正确......这是修复
var obj = document.createElementNS("http://www.w3.org/2000/svg", "circle");
obj.setAttributeNS(null, "cx", X);
obj.setAttributeNS(null, "cy", Y);
obj.setAttributeNS(null, "r", Radius);
obj.setAttributeNS(null, "stroke", strokeColor);
obj.setAttributeNS(null, "stroke-width", 1);
obj.setAttributeNS(null, "fill", "white");
$("svg")[0].appendChild(obj);
我把它放到一个函数中,它工作得很好。