我们有一个搜索弹出式应用程序。您搜索一个术语,然后在页面中找到它们,并为该单词添加一个类,然后再突出显示该文本。偶尔,找到的实例位于搜索弹出窗口后面的页面区域中。如果是这样的话,我想调出搜索弹出窗口的不透明度,以便用户可以看到它后面的实例。有没有简单的方法来做到这一点?任何提示或技巧,赞赏。一个要求是搜索后弹出窗口保持打开状态,所以我们不能关闭/隐藏它。HTML:有什么方法可以确定一个元素是否在另一个元素之后?
4
A
回答
3
您可以使用getBoundingClientRect()
找到的文本和弹出并比较尺寸。
您可以在文本直接作用的范围,但它听起来像你有为了应用的亮点包找到的文本元素,所以我只是用那个元素。我想,你可以通过你找到的文本和你的弹出窗口,让此功能测试,如果它们重叠:
function isOverlapping (a, b)
{
var rectA = a.getBoundingClientRect();
var rectB = b.getBoundingClientRect();
return rectA.top < rectB.bottom && rectA.bottom > rectB.top &&
rectA.left < rectB.right && rectA.right > rectB.left;
}
编辑:我必须有太多的时间在我的手上,因为这里有一个有趣的小演示: http://jsfiddle.net/gilly3/qUFLJ/4/
+0
酷东西的人,我知道这是坏的,但我渴望去寻找一种情况,我可以在实时应用程序中实现这一点。 – sg3s
0
是的,使用JavaScript会很容易。既然你知道弹出窗口是否打开,我假设你知道它是宽度和位置。只需创建一个边界框并检查您的元素是否在此框内。 getBoundingClientRect对此很有用。如果你使用jQuery,。 offset也可以帮助你。
让我知道你是否需要一个例子。
相关问题
- 1. 如何找出一个HTML元素是否在另一个HTML元素之后?
- 2. 是否可以用另一个td元素替换一个HTML表td元素
- 3. 判断一个元素是否在列表中的另一个元素之后
- 4. 如何确定元素是否可以有html子元素?
- 5. 确定一个事件目标是否是另一个元素的子元素
- 6. 在另一个元素的子元素之后插入元素
- 7. 有没有什么方法可以在Less中获得另一个元素值?
- 8. 如何检查一个元素是否是另一个元素的有效子元素/父元素
- 9. 在HTML中包装一个元素与另一个元素
- 10. 一个元素使另一个元素
- 11. 在另一个元素之后添加元素?
- 12. 如何在另一个元素之后添加元素?
- 13. CSS3 - 在另一个元素之后选择元素
- 14. 是否可以将元素放在另一个元素上而不阻塞后面元素的链接?
- 15. 元素已经是另一个元素
- 16. 确定当前元素是集合的最后一个元素?
- 17. 将一个div元素放在另一个元素上方
- 18. 在另一个特定元素之外选择元素
- 19. 什么是突出显示一个元素的正确方法?
- 20. 有没有在jQuery中确定一个元素是否有类的方法?
- 21. 绝对定位一个元素*在另一个元素内
- 22. 将属性从一个html元素绑定到另一个html元素与knockoutjs
- 23. 在另一个元素中查找所有锚元素的xpath是什么?
- 24. 在Matlab中建立一个从另一个元素中挑选元素的最快方法是什么?
- 25. 数组元素是否可以引用另一个数组的元素?
- 26. 确定当前元素是发生器的第一个还是最后一个元素的Python方法?
- 27. 将一个元素先移动到另一个元素之前用css/html
- 28. Div元素在另一个div元素
- 29. DOM中的另一个元素之前还是之后的元素
- 30. 一些方法来包装任何HTML元素与另一个元素?
你可能会提供一些标记吗? – f0x
你在使用JQuery吗?你可以在结果内容区滚动吗?如果可滚动,用户只需滚动查看所有结果。更重要的是:yopur搜索框的位置是固定的还是绝对的? –