HTML / CSS : div를 클릭에 "보이지 않게"만드시겠습니까?


98

여러 가지 이유로 <div>일부 텍스트에 (대부분) 투명하게 표시해야 합니다. 그러나 이것은 텍스트를 클릭 할 수 없음을 의미합니다 (예 : 링크를 클릭하거나 선택하기 위해). 이 div를 클릭 및 기타 마우스 이벤트에 대해 "보이지 않게"만드는 것이 가능할까요?

예를 들어 overlaydiv는 텍스트를 덮지 만 overlaydiv를 통해 텍스트를 클릭 / 선택할 수 있기를 원합니다 .

<div id="container">
    <p>Some text</p>
    <div id="overlay" style="position: absolute; top: 0;
                             left: 0; width: 100%; height:100%">
        ... some content ...
    </div>
 </div>

1
짧은 대답은 아니오입니다. (여러 번 논의되었지만 속임수를 찾기가 어렵고 좋은 키워드를 생각할 수 없습니다 ...) 투명한 DIV가 필요한 이유는 무엇입니까?
Pekka

2
나는 그것이 가능하다고 생각하지 않습니다. "다양한 이유", 즉 당신이 정말로 성취하고 싶은 것에 대해 말할 수 있습니까?
davehauser

1
@Null OP가 무엇을 원하는지 명확해질 때까지 -1을 보류합니다.
Pekka

1
NullUserException-그가 제안하는 것이 사람들이 자신의 웹 사이트에서 콘텐츠를 복사하는 것을 어떻게 막을까요? 무엇이든, 그는 그 반대를 시도하고 있습니다. 그는 투명한 div의 효과를 없애고 싶습니다 (텍스트를 클릭하고 선택하기 어렵게 만드는).
Hammerite

@Hammer 당신이 맞습니다. 나는 반대표를 제거했습니다.
NullUserException

답변:


159

CSS를 사용하여 할 수 있습니다 pointer-events. 이 속성은 Firefox 3.6 이상, Chrome 2 이상, IE 11 이상 및 Safari 4 이상에서 지원됩니다. 불행히도 브라우저 간 해결 방법에 대한 지식이 없습니다.

#overlay {
  pointer-events: none;
}

3
아, 맛있겠다! 이제 유일한 문제는 아이들 중 일부가 포인터 이벤트를 받아들이도록 해야한다는 것입니다.하지만 아마도 저는 그것을 알아낼 수있을 것입니다. 감사!
David Wolever 2010-08-21

2
멋지다 : 내가 원하는 것을 정확히pointer-events: visible 할 것 같습니다 . 감사!
David Wolever 2010-08-21

크롬에서 작동합니다! 이것이 가능하다는 것을 사랑하십시오!
BT

포인터 이벤트 polyfill이 있습니다 : github.com/kmewhort/pointer_events_polyfill
rink.attendant.6

가장 간단하고 확실한 답변!
Jones G


0

다음과 같이 오버레이를 숨기면됩니다.

overlay.onclick = function(){
    window.event.srcElement.style.visibility = "hidden";
    var BottomElement = document.elementFromPoint((navigator.appName.substring(0,3) == "Net") ? e.clientX : window.event.x,(navigator.appName.substring(0,3) == "Net") ? e.clientY : window.event.y);
    window.event.srcElement.style.visibility = "visible";
    BottomElement.click();
}

0

이 jQuery 사용

$("div").click(function(e){e.preventDefault();});

"div"를 ID 또는 요소로 바꿉니다.


-1

div의 모든 이벤트 (또는 병아리)를 비활성화하는 대안은 기본적으로 태그가 첨부 된 모든 이벤트를 unbind ()하는 것입니다.

  $('#myDivId').unbind();

또는

  $('#myDivId').unbind("click");

jquery이제 off()를 선호 unbind()하고 핸들러 만 제거하며 div가 클릭을 캡처하는 것을 방지하지 않습니다.
pmoleri
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.