我需要在div中有一个圆圈。我正在使用RaphaelJs。 我正在使用RaphaelJS在我的UI上设置矢量图像(cirlce)。同时,我的页面上也有jQueryUI sortable。
所以,当指定var paper = new Raphael(x,y,width,height)时;对于制作画布,在x和y坐标下的portlet部分似乎不起作用,因为我无法移动/拖动portlet。例如: - 如果x和y设置为300和300,则第1列中的portlet执行拖动,第2列和第3列正常工作。在增加x和y值(比如800,800)后,所有portlet都不会拖动。
我想在RaphaelJS中创建画布时,画布下的部分不能正常运行。我怎样才能纠正它?或者还有其他替代方案吗?
这是我的代码
<!DOCTYPE html>
<html>
<head>
<title>Shap Design with Raphael</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script>
window.onload = function() {
var paper = new Raphael(20,20, 300, 300);
var p = paper.path("M 250 250 l 0 -50 l -50 0 l 0 -50 l -50 0 l 0 50 l -50 0 l 0 50 z");
p.attr(
{
gradient: '90-#526c7a-#64a0c1',
stroke: '#3b4449',
'stroke-width': 10,
'stroke-linejoin': 'round',
rotation: -90
}
);
}
</script>
<style>
#sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
#sortable li { margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px; }
#sortable li span { position: absolute; margin-left: -1.3em; }
</style>
<script>
$(function() {
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
});
</script>
</head>
<body>
<div id="box"></div>
<ul id="sortable">
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li>
</ul>
</body>
</html>
尝试在this link上运行此代码。复制并粘贴代码。
答案 0 :(得分:0)
你可以获得div的位置,然后将它们用作需要协调的Raphael函数的参数。例如,在div中绘制一个圆圈:
<div style="background-color:yellow" id='div1'>
here is the div
<script>
var p = $('#div1');
var position = p.position();
var paper = Raphael(10, position.left, position.left + 320, position.top + 200);
var circle = paper.circle(position.left, position.top, 10);
circle.attr("fill", "#f00");
circle.attr("stroke", "#fff");
</script>
</div>