相关疑难解决方法(0)

点击一个元素,影响其背后的内容

所以,我打算为我的网站制作一个重叠的东西,其中一个元素固定在网站上并置于一切之上.但这意味着元素背后的其他任何东西都不会受到影响.

这是一个重现这个问题的JSFiddle.

您会注意到您无法突出显示黑色文本,并且JavaScript事件不会触发.


这是我用来创建这个问题的CSS + HTML:

HTML

<div id="main-container">
    <div id="container-content">You can't highlight me! D:</div>
    <div id="container-fixed"><div style="margin:90px auto;background:red;width:40px;height:40px;"></div>You cannot highlight the text behind this DIV.  It also doesn't fire click events.</div>
</div>
Run Code Online (Sandbox Code Playgroud)

main-container:这包含内容.

container-content:这是固定DIV背后的内容

container-fixed:这是重叠"容器内容"的DIV

CSS

#main-container {
    width: 90%;
    margin: 5%;
    position: relative;
    height: 500px;
    overflow: auto;
}

#container-content {
    width: 100%;
    height: auto;
}

#container-fixed {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    color: red;
}
Run Code Online (Sandbox Code Playgroud)

我正在努力实现的目标是什么?CSS和JavaScript(jQuery)答案都是允许的.

html javascript css jquery

11
推荐指数
1
解决办法
3264
查看次数

如何将单击传播到光标下的所有div?

我有一堆divs绝对相互搭配.当我将click事件绑定到所有这些事件时,只有顶部div响应.如何将事件发送到光标下的所有div?

javascript css jquery javascript-events

10
推荐指数
1
解决办法
5182
查看次数

跨越锚标记阻止在iPhone上用于Safari的tap事件

我在基于Sencha Touch 2的移动应用程序中设计了类似于按钮的普通链接,而且我遇到的问题是大多数链接在iPhone上的Safari中无法正常工作.

该链接是一个普通<a>标签,内部<span>元素包含标签文本.<a>元素上有填充,允许注册点击.似乎内部<span>阻止了点击在父锚中作为链接点击注册,其背景是透明的.

这是标记:

<a href="http://test-site.xx/full-site-page?param=value" class="x-button-normal x-button btn-profile">
    <span class="x-button-label">View profile on full site</span>
</a>
Run Code Online (Sandbox Code Playgroud)

在Chrome中进行测试不会出现任何问题,即单击跨度会导致遵循父超链接.两者都是基于Webkit的浏览器.我们的一位测试人员也在Safari上用Macbook测试了这一点,没有任何问题; 我还使用Wacom Bamboo平板电脑在Chrome中对此进行了测试,没有任何问题.这只是移动设备上的一个问题(在iPhone和Android 2.2上都经过测试) - 这就是我们的目标.

我可以在<span>元素上设置一个CSS属性,以允许点击通过父超链接吗?理想情况下,我希望避免通过JavaScript设置事件.关于为什么这不符合我的预期的任何想法?

更新:以下是Chrome开发者控制台报告的内部范围样式:

-webkit-box-align: center;
-webkit-box-flex: 1;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-user-drag: none;
-webkit-user-select: none;
background-attachment: scroll;
background-clip: border-box;
background-color: transparent;
background-image: none;
background-origin: padding-box;
border-bottom-color: white;
border-bottom-style: none;
border-bottom-width: 0px;
border-left-color: white;
border-left-style: none;
border-left-width: 0px;
border-right-color: white;
border-right-style: none;
border-right-width: 0px;
border-top-color: white;
border-top-style: …
Run Code Online (Sandbox Code Playgroud)

html css iphone safari sencha-touch-2

9
推荐指数
1
解决办法
8198
查看次数

允许点击通过iFrame传递到其背后的内容

我能在SO上尝试做的最接近的事情就是这样,但听起来这不再是一个可行的解决方案而且它不是特定于iFrames: 点击DIV到底层元素

基本上我有一个DIV被添加到包含iFrame的页面.iFrame内容可以最小化,因此它们并不总是占用iFrame的所有空间.iFrame是透明的,因此您仍然可以看到它背后的网页.我需要能够点击它背后的网页中的元素,但到目前为止还没有运气.

它们有大约400x400的iFrame,但当其中的内容最小化时,您仍然可以点击它背后的网页.我尝试过类似的东西,却无法让它发挥作用.

即使在透明区域,我也无法点击它背后的页面.我也尝试过使用指针事件:无其他帖子中提到但没有帮助.它只会禁用iFrame中的元素,但不会影响单击它.

有谁知道如何实现这一目标?有一种更大的iFrame的方法,其中的内容可以最小化,你仍然可以点击iFrame背后的内容?

更新: 使用框架时似乎无法做到这一点.

html javascript css iframe

9
推荐指数
1
解决办法
5843
查看次数

使一个对象可以从html中的另一个元素的后面单击

看看这个:http:
//www.templatemonster.com/demo/35403.html

在此模板中,您可以单击男性前臂下方的图像,甚至可以单击前臂本身.
手不是图像的一部分.这是三div件作为背景的png图像.

这怎么可能?
我该怎么做同样的事情(有一个包含链接的图像的股利和有它内部的div但是底层的链接可以点击的)?
它是跨浏览器吗?

谢谢

html css

8
推荐指数
2
解决办法
9490
查看次数

允许指针(单击)事件通过元素,同时保持滚动功能

我的目标是拥有一个允许的元素:

  1. 下面的元素被点击/与之交互,
  2. 滚动

众所周知,1的解决方案是pointer-events: none.这是在点击DIV到底层元素中所描述的.

但是,元素无法滚动,因为滚动条出现在元素上pointer-events: none.这可以在这个例子中看到:http://jsbin.com/madure/2/edit?html,css,output.

是否有解决方法,或者是否需要在浏览器级别解决?也许有一个额外的规则,pointer-events: scrollOnly.

html javascript css dom

7
推荐指数
1
解决办法
2167
查看次数

指针事件:无,过滤,在ie8和任何地方工作,而不是ie9

正如我在这里看到的,可以使用过滤器来模拟跨浏览器版本

pointer-events: none;
Run Code Online (Sandbox Code Playgroud)

但是,这在IE9中不起作用,也不在IE9中的"模拟IE8"版本中.但是,IE8的本机安装可以很好地处理它.是否有任何解决方案使其适用于IE9?

css

6
推荐指数
1
解决办法
1万
查看次数

检测多个重叠SVG元素上的鼠标事件

我正在尝试检测部分重叠的SVG元素上的mousemove事件,如此图像中所示

在此输入图像描述

小提琴

<svg>
    <rect id="red"    x=10 y=10 width=60 height=60 style="fill:#ff0000" />
    <rect id="orange" x=80 y=10 width=60 height=60 style="fill:#ffcc00" />
    <rect id="blue"   x=50 y=30 width=60 height=60 style="fill:#0000ff; fill-opacity: 0.8" />
</svg>

$('rect').on('mousemove', function()
{
    log(this.id);
});
Run Code Online (Sandbox Code Playgroud)

现在,当鼠标悬停在蓝色/红色交叉点上时,我想检测这两个元素上的鼠标事件,蓝色/橙色组合则相同.正如您在日志中看到的那样,在这些情况下,事件当前仅针对蓝色框触发,因为它位于顶部.

这与指针事件有关,因为我可以通过将蓝色元素的指针事件设置为无,在悬停蓝色元素时获取红色和橙色元素来触发事件.但后来我没有得到蓝盒的事件,所以这也不是一个可行的选择.

我将使用哪个库解决这个问题.我在这个d3示例中查看了事件冒泡,但这仅适用于嵌套在DOM中的元素.我有很多可能与许多其他元素重叠的独立元素,因此无法以这种方式构建我的DOM.

我猜最后的办法是找到当前鼠标位置的元素,并手动触发事件.因此,我查看了document.elementFromPoint(),但这只会产生1个元素(并且在SVG中可能不起作用?).我发现jQuerypp功能,即发现在给定位置的元素,见这里.这个例子看起来很棒,除了它是DIV而不是SVG内部.当用svg矩形元素替换div时,小提琴似乎破了.

我该怎么办?!

javascript svg event-propagation pointer-events

6
推荐指数
1
解决办法
2358
查看次数

Stacked Element阻止事件传播

我正在使用svg元素创建图表.我正在向他们应用事件处理程序.事件按预期工作,但我有一个问题,因为有时其中一个元素直接在另一个元素之上,所以当底部元素的事件应该被触发时,它不会.如果你看下面的图片,我有rect一个zoom事件.变焦event会在mouse-wheel发生时触发rect,但当圆圈覆盖它时,不会触发事件.我必须拥有它circles,rect以便在需要时可以点击它们.我怎么可能解决这个问题.我尝试在这里搜索解决方案SO,但找不到任何特定于此问题的内容.

我有一个显示圈子的JSFiddle.如果您在圆圈之外的任何位置进行缩放,则会触发缩放行为,但如果您尝试在圆圈顶部进行缩放,则缩放行为将不起作用.

在此输入图像描述

html javascript svg d3.js

6
推荐指数
1
解决办法
156
查看次数

如何使 div 可点击但可悬停?

我需要制作一个 div,以便当光标悬停在它上面时我可以检测到它(使用 javascript),但我想制作一个 div,以便您可以单击 div 到下面的元素。有没有办法做到这一点?

谢谢

html javascript css hover

5
推荐指数
1
解决办法
2480
查看次数