SVG перемещаемое использование JQuery и Jquery-svg

Вам не нужна библиотека вне стандартной - просто используют Набор символов . (Можно просто использовать Строковых конструкторов и getBytes методы, но лично мне не нравится просто работать с названиями кодировок символов. Слишком много комнаты для опечаток.)

РЕДАКТИРОВАНИЕ: Как указано в комментариях, можно все еще использовать экземпляры Набора символов, но иметь простоту использования Строковых методов: новая Строка (байты, набор символов) и String.getBytes (набор символов) .

См." URL Кодировать (или: 'Что те" %20" коды в URL?') ".

33
задан skyfoot 10 July 2009 в 08:54
поделиться

1 ответ

Я создал базовую функцию перетаскивания для нацеливания на мои объекты svg. У меня нет средств обнаружения или обнаружения столкновений. Существует проблема, если я перемещаю мышь слишком быстро, я оставлю перетаскиваемый объект позади.

<!DOCTYPE HTML> 
<html >
<head>
<title></title>
<link href="css/reset.css" rel="stylesheet" type="text/css">
<link href="css/layout.css" rel="stylesheet" type="text/css">
<link href="css/style.css" rel="stylesheet" type="text/css">
<script src="js/jquery.js" type="text/javascript" ></script>
<script src="js/jquery-ui.js" type="text/javascript" ></script>
<script src="js/jquerysvg/jquery.svg.js" type="text/javascript" ></script>
<script src="js/jquerysvg/jquery.svgdom.js" type="text/javascript" ></script>

<script type="text/javascript" >
jQuery(document).ready(function(){
    $('#target').svg({onLoad: drawInitial});
    $('circle').click(function(e){
        drawShape(e);
        var shape = this.id;

    }); 
})

function drawInitial(svg) {
    svg.add($('#svginline')); 
}

function onMouseDown(evt){
        //var shape = this.id;

        var target = evt.target;        
        target.onmousemove = onMouseMove; 

        return false; 
}

function onMouseMove(evt){
    circle = evt.target

    var cx = circle.getAttribute("cx");
    offsetX = $('#target').offset().left;
    offsetY = $('#target').offset().top
    circle.setAttribute("cx", evt.clientX -offsetX);
    circle.setAttribute("cy", evt.clientY - offsetY);

    circle.onmouseup = OnMouseUp;
}

function OnMouseUp(evt) { 
    var target = evt.target;        
    target.onmousemove = null; 
}

function drawShape(e) {
    var svg = $("#target").svg('get');
    offsetX = $('#target').offset().left;
    offsetY = $('#target').offset().top;
    $('#result').text(e.clientX + ": " +  e.pageX);
    var dragme = svg.circle(e.clientX - offsetX, e.clientY - offsetY, 5, {onmousedown: "onMouseDown(evt)",fill: 'green', stroke: 'red', 'stroke-width': 3});    
    $(dragme).addClass('drag');
}
</script>
</head>
<body>
    <div id="target" ></div>
    <svg:svg id="svginline">
        <svg:circle id="circ11" class="area" cx="75" cy="75" r="50" stroke="black" stroke-width="2" fill="red"/>
    </svg:svg>
    <div id="result" >ffff</div>
</body>
</html>
1
ответ дан 27 November 2019 в 18:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: