svg中实现元素拖动 您所在的位置:网站首页 什么是拖动点击 svg中实现元素拖动

svg中实现元素拖动

2024-07-09 20:51| 来源: 网络整理| 查看: 265

svg中实现元素拖动

目录

html

属性

初始化:

mousedown

mousemove:

mouseup:

html 属性

没有设置初始值...

var originX = 0; // 鼠标初始位置 var originY = 0; var domX = 0; // dom初始元素 var domY = 0; var dom; // 初始元素 var isMouseDown = false; 初始化: window.onload = function () { dom = document.getElementById("firstRect"); // 设置dom初始属性 } mousedown function mousedown(e) { // 鼠标初始位置 originX = e.clientX; // 初始位置 originY = e.clientY; // 元素初始位置 domX = dom.getAttribute("x"); domY = dom.getAttribute("y"); domX.replace("px", ""); domY.replace("px", ""); domX = parseInt(domX); domY = parseInt(domY); isMouseDown = true; } mousemove:

获取当前鼠标位置->计算鼠标移动距离->计算dom当前位置 

function mousemove(e) { if (isMouseDown) { // 移动距离 var distanceX = e.clientX - originX; var distanceY = e.clientY - originY; // 元素位置 var curX = domX + distanceX; var curY = domY + distanceY; dom.setAttribute("x", curX); dom.setAttribute("y", curY); } } mouseup: function mouseup(e) { isMouseDown = false; // 取消按钮 }

 

借助svg,我们可以画出多种多样的图形,而且利用g标签,还可以把多个标签组合在一起,让他们具有相同的行为。 语法也比较简洁,希望还么有接触过的同学,学习一下。  要实现拖动功能(大神绕行…),我们需要给元素定义mousedown(响应鼠标在元素范围按住),mousemove(移动),mouseup(松开鼠标),先定义一个rect标签(有机会补图)。

然后现在我们添加代码来处理选中的元素

var currentX = 0; var currentY = 0; var currentMatrix = 0; function selectElement(evt) {    selectedElement = evt.target;    currentX = evt.clientX;    currentY = evt.clientY;    currentMatrix = selectedElement.getAttributeNS(null, "transform").slice(7,-1).split(' ');    for(var i=0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有