将一个元素放在具有相同z索引的其他元素前面
Bring an element in front of others that have the same z-index
用户可以按下按钮在屏幕上创建新的div。每个div都是相同的,并且具有相同的z索引。较新的元素显示在较旧的元素前面。用户可以在元素周围拖动。我希望当用户拖动一个元素时,该元素现在永久地位于其他元素之前(直到创建/拖动另一个元素为止)。
是否可以在不跟踪JS中某个地方的z索引并在创建/单击时增加它的情况下做到这一点?如果可能的话,我想避免这种情况。有没有什么方法可以使用jQuery或其他东西让点击的元素看起来像是最近创建的(我想这只是由DOM中的位置决定的?)
我想你正在做类似的事情
container.appendChild(newDiv)
现在,单击并拖动图元时,可以将其移动到前面。
var parent = recentlyClicked.parentElement // or container
parent.insertBefore(recentlyClicked, parent.firstChild)
这将插入所需的div作为其父级的第一个子级,后者将移动到顶部。
Edit:DOM中后面的元素似乎就是顶部显示的元素。在这种情况下,您可能需要附加子项。
recentlyClicked.parentElement.appendChild(recentlyClicked)
点击后,您可以将一个类添加到元素中,其中针对该类的CSS具有略高的z索引。这可能是最干净的方法(不需要跟踪z索引,只需在鼠标向下和向上切换该类的存在
另一个想法(不确定它是否有效,但尝试起来可能很有趣)是在所有元素中添加tabindex="0"。他们现在可以获得关注。然后在CSS中添加一个针对这些元素的":焦点"状态选择器。以此增加他们的z索引。我不记得焦点是在鼠标放下还是在完全点击后。它可能会在你不想要的元素上带来其他副作用的线条轮廓。并且扰乱了你网站上标签键的可用性。我可能不会使用这个,除非它在非生产环境中真的简单得多。
相关文章:
- 如何索引jquery中的每个元素
- JavaScript DOM:在容器中查找元素索引
- 通过javascript中的元素索引访问eventListener中的元素
- 将页面元素索引到 JSON 对象?或者jQuery选择器它每次
- jQuery将相同的类添加到两个不同容器中的同一元素索引中
- 获取小元素索引直到数组长度
- jQuery获取元素索引,尽管包装器/父元素
- 更改数组中某些元素(索引)的顺序
- 访问具有公共类名的元素数组中的元素索引
- 访问循环的内部的ES6数组元素索引
- 列表类元素(索引).渐变(某些速度)不起作用
- javascript中的表单元素索引,用于jquery.change函数
- 获取文本块中的元素索引
- 用主干JS .get模型事件连接元素索引
- 从81个元素索引的数组中获取行和列值
- 如何使用javascript获得元素索引
- 使用类和子类获取元素索引
- Mootools从父元素获取子元素索引
- 如何在Javascript中获得一组固定元素的元素索引
- 使用jQuery更改列表元素索引