var box = document.querySelector('.box') var box1 = document.querySelector('.box1') box.onmousedown = function (e) { var e = e || window.event var w = e.offsetX var h = e.offsetY box1.onmousemove = function (e) { var e = e || window.event var x = e.offsetX var y = e.offsetY console.log(x) console.log(y) box.style.left = x + 'px' box.style.top = y + 'px' } } box.onmouseup = function () { box1.onmousemove = null } 为什么拖动的时候会一直闪
时间: 2024-01-03 18:03:59 浏览: 416
这可能是由于鼠标移动过快,导致事件触发过于频繁,浏览器无法及时渲染,从而出现闪烁的情况。你可以尝试在 `mousemove` 事件中添加一些节流(throttle)或防抖(debounce)的代码,来减少事件的触发次数,从而缓解闪烁的问题。
另外,你也可以尝试使用CSS中的 `transform` 属性来实现盒子的拖动效果,这种方式更加流畅。你可以将盒子的位置通过 `transform: translate(x, y)` 进行移动,而不是通过改变 `left` 和 `top` 属性。
相关问题
var box=document.querySelector("#box");
你的问题是关于 JavaScript 的代码,你想获取一个 id 为 "box" 的元素。在 JavaScript 中,可以使用 `document.querySelector` 方法来选择 DOM 元素。你已经正确地使用该方法,并将选中的元素赋值给了变量 `box`。这样,你就可以通过 `box` 变量来操作该 DOM 元素了。请问还有什么其他问题吗?
var yb1=document.querySelector('.yb1')
根据提供的引用内容,`document.querySelector(CSS selectors)`是一个JavaScript方法,它返回文档中与指定CSS选择器匹配的第一个元素,如果找不到匹配的元素,则返回null。因此,`var yb1=document.querySelector('.yb1')`的意思是在文档中查找类名为“yb1”的第一个元素,并将其赋值给变量yb1。如果找不到匹配的元素,则变量yb1将被赋值为null。
阅读全文