绘制在鼠标位置折叠的水平线和垂直线
Draw horizontal and vertical lines collapsing at mouse position
我正在绘制鼠标位置折叠的水平和垂直线。我面临两个问题
- 水平线未显示。似乎是一些CSS问题,但无法弄清楚。
- 移动鼠标时,线条的重绘并不流畅。它的杂乱无章。无论如何,我可以避免吗?
小提琴
法典:
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;
}
请参阅更新的小提琴。
编辑
您还可以使用以下方法来平滑动画(您必须调整时间跨度以满足您的需求:
.straightLine, .hrLine {
position: absolute;
background-color: red;
transition: transform .05s ease-in-out;
}
请参阅更新的小提琴和 w3schools.com。
相关文章:
- 模运算符前的双水平线
- 如何在chartjs中呈现悬停时的垂直线
- 如何使用JS捕捉带有垂直线的自定义图像光标
- 带有超级下拉菜单的两条水平线
- 角度图添加水平线
- 在sharepoint页面中的静态行上添加一条水平线
- 如何将固定范围的垂直线添加到 D3.js 图表
- 绘制在鼠标位置折叠的水平线和垂直线
- 将水平线添加到 d3 图形以错误的值显示
- 使滑动水平线上的任何元素居中
- 绘制垂直线和水平带
- 在 javascript 中,对象值中的两条垂直线是什么意思?
- HTML 元素按水平线(在其腰部)分成两半
- 如何使用 html 和 css 在文本框内添加垂直线
- 使用 d3.js 将弧线动画化为水平线
- 如何隐藏底部垂直线高图表.js
- 使用 jQuery 绘制垂直线
- clearRect在绘制垂直线时不清除画布
- 使用“开放层”自动绘制路径的第一条垂直线
- 什么'这是在HTML5/CSS/Js中绘制水平线和垂直线的最便宜的方法