I'm trying to create an element of top my page which can be hovered. When hovered I want to change the opacity of the element and allow click through.
The thing is when I add the pointer-events: none to allow the click through, my hover is never triggered, which seems logic after all. I though I would be able to deal with it with JavaScript, but event mouseover or mouseenter is not compatible with pointer-events: none.
Here is my example with only CSS: If I add the pointer-events: none; it doesn't work. The element is the red banner, I want to be able to click the buttons underneath while being able to lower the opacity of it.
body {margin:0; padding:0;}
.title {font-weight:bold;margin-right:10px;}
.container {margin: 0 auto;width:80%;position:relative;overflow:hidden;}
.content {height:300px;border: 1px solid #c8c8c8;}
nav {background-color:#efebe0;padding:20px;}
button {padding:10px;background-color:#9ebf00;border: 1px solid #86a200;border-radius:5px;margin: 0 5px 0 5px;}
button.right {float:right;}
.bandeau {
  position: absolute; 
  background: red none repeat scroll 0% 0%; 
  width: 300px; 
  height: 40px; 
  z-index: 2; 
  font-size: 30px; 
  color: white; 
  font-weight: bold; 
  text-align: center; 
  right: -70px; 
  transform: rotate(45deg); 
  top: 60px; 
  display: block;
  transition: 0.2s ease-in-out;
  pointer-events:none;
}
.bandeau:hover {
  opacity: 0.4;
}<div class="container">
  <nav>
    <span class="title">Dummy Example</span>
    <button>Home</button>
    <button>Pricing</button>
    <button class="right">Contact us</button>
    <button class="right">Log in</button>
  </nav>
  <div class="content"></div>
  <div class="bandeau">
    <span>I will be back !</span>
  </div>
</div>The other example with JavaScript:
document.addEventListener('DOMContentLoaded', function() {
  var bandeau = document.getElementById("bandeau");
  bandeau.addEventListener('mouseenter', e => {
    bandeau.style.opacity = '0.4';
    bandeau.style.pointerEvents = 'none';
  });
  bandeau.addEventListener('mouseleave', e => {
    bandeau.style.opacity = '1';
    bandeau.style.pointerEvents = 'auto';
  });
}, false);body {margin:0; padding:0;}
.title {font-weight:bold;margin-right:10px;}
.container {margin: 0 auto;width:80%;position:relative;overflow:hidden;}
.content {height:300px;border: 1px solid #c8c8c8;}
nav {background-color:#efebe0;padding:20px;}
button {padding:10px;background-color:#9ebf00;border: 1px solid #86a200;border-radius:5px;margin: 0 5px 0 5px;}
button.right {float:right;}
#bandeau {
  position: absolute; 
  background: red none repeat scroll 0% 0%; 
  width: 300px; 
  height: 40px; 
  z-index: 2; 
  font-size: 30px; 
  color: white; 
  font-weight: bold; 
  text-align: center; 
  right: -70px; 
  transform: rotate(45deg); 
  top: 60px; 
  display: block;
  transition: 0.2s ease-in-out;
}<div class="container">
  <nav>
    <span class="title">Dummy Example</span>
    <button>Home</button>
    <button>Pricing</button>
    <button class="right">Contact us</button>
    <button class="right">Log in</button>
  </nav>
  <div class="content"></div>
  <div id="bandeau">
    <span>I will be back !</span>
  </div>
</div>Is there a way to achieve this or is it impossible?
 
     
    