禁用儿童元素中的链接如果父节不透明度< 100

时间:2016-02-23 07:44:21

标签: javascript jquery

花了一段时间搜索此内容,只有在不透明度为0%时才能找到有关如何禁用可点击链接的信息。

我想做类似的事情。我希望禁用任何子元素中的所有可点击链接,当其任何父元素的不透明度<100时。

所以例如: ParentDiv初始不透明度为50%,但悬停时为100%。 ParentDiv中的Childlink被禁用,直到ParentDiv达到100%不透明度。 ParentDiv在悬停时实现100%不透明度。

3 个答案:

答案 0 :(得分:0)

您可以通过

获得ParentDiv的不透明度
var elem = document.getElementById("ParentDiv");
var opacity= window.getComputedStyle(elem,null).getPropertyValue("opacity");

禁用子<a>代码:

if (opacity<1) {
        elem.getElementsByTagName("a").disabled=true;
}

答案 1 :(得分:0)

您可以使用pointer-events: none;来避免点击链接:

.div { opacity: 0.5; }
.div:hover { opacity: 1; }

.div a { pointer-events: none; }
.div:hover a { pointer-events: all; }

有关您可以找到here

的指针事件的详细信息

答案 2 :(得分:0)

我已经为我完成了这项工作,这很有效,这是代码。

operator++()         => Prefix Increment
operator--()         => Prefix Decrement

operator++(int)      => Postfix Increment
operator--(int)      => Postfix Decrement

它实际上是一种非常巧妙的方式,可以为移动用户提供与伪&#34;悬停&#34;进行交互的方式。您将div设置为50不透明度,然后用户必须单击它以查看div中的全彩色链接图像。然后,如果他们喜欢它,他们会点击现在的100%不透明度图像并将它们带到您的链接。

重新编辑:令人惊讶的人投了这个,可能只是太封闭,看看这有多么有用。 (请不要编辑我的评论)

希望这有助于其他人:)