gpt4 book ai didi

javascript - 绘制在鼠标位置折叠的水平线和垂直线

转载 作者:行者123 更新时间:2023-12-04 00:10:45 25 4
gpt4 key购买 nike

我想在鼠标位置绘制水平和垂直线。我面临两个问题

  1. 没有显示水平线。似乎是一些 CSS 问题,但无法弄清楚。
  2. 移动鼠标时,线条的重绘不流畅。它的困惑。无论如何,我可以避免这种情况吗?

fiddle

代码:

var element = document.getElementById('box');

var drawLines = function(event) {
var x = event.pageX;
var y = event.pageY;

var straightLine = element.querySelector('.straightLine');
var hrLine = element.querySelector('.hrLine');

var slTrans = 'translate(' + x + 'px, 0px)';
var hrTrans = 'translate(0px, ' + y + 'px)';
if(!straightLine) {
straightLine = document.createElement('div');
straightLine.classList.add('straightLine');
straightLine.style.height = "100%";
straightLine.style.width = '2px';
element.appendChild(straightLine);
}
straightLine.style.transform = slTrans;

if(!hrLine) {
hrLine = document.createElement('div');
hrLine.style.height = "2px";
hrLine.classList.add('hrLine');
hrLine.style.width = '100%';
element.appendChild(hrLine);
}
hrLine.style.transform = hrTrans;
}

element.addEventListener('mousemove', function(event) {
drawLines(event);
});

element.addEventListener('mousedown', function(event) {
drawLines(event);
});

element.addEventListener('mouseup', function(event) {
drawLines(event);
});

element.addEventListener('mouseout', function(event) {
drawLines(event);
});

最佳答案

水平线问题可以通过以下方式解决:

.straightLine, .hrLine {
position: absolute;
background-color: red;
}

查看更新 fiddle .

编辑
您还可以使用以下方法来平滑动画(您必须调整时间跨度以满足您的需要:

.straightLine, .hrLine {
position: absolute;
background-color: red;
transition: transform .05s ease-in-out;
}

查看更新 fiddlew3schools.com .

关于javascript - 绘制在鼠标位置折叠的水平线和垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36039738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com