JSFiddle - React, Tailwind, and code Playground

HTML

<div id="banner-message">
  <p>Hello World</p>
  <button>Change color</button>
</div>

<p class="proof">
  

</p>

CSS

*{
box-sizing: border-box;
  
  

}
body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#banner-message {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
  position: relative;
}

#banner-message:before {
  content: "woof";
  position: absolute;
  top: 0;
  left: -40px;
  background: #fff;
  z-index: 99;
  
}

#banner-message:after {
  content: "boom";
  position: absolute;
  top: 0;
  right: -40px;
  background: #fff;
  z-index: 99;
  
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#banner-message.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#banner-message.alt button {
  background: #fff;
  color: #000;
}
p {
  background: white;
  
}

JavaScript

function psuedoClick(parentElem) {
	
	var beforeClicked,
      afterClicked;
  
  var parentLeft = parseInt(parentElem.getBoundingClientRect().left, 10),
      parentTop = parseInt(parentElem.getBoundingClientRect().top, 10);

  var parentWidth = parseInt(window.getComputedStyle(parentElem).width, 10),
      parentHeight = parseInt(window.getComputedStyle(parentElem).height, 10);

  var before = window.getComputedStyle(parentElem, ':before');
  
  var beforeStart = parentLeft + (parseInt(before.getPropertyValue("left"), 10)),
      beforeEnd = beforeStart + parseInt(before.width, 10);

  var beforeYStart = parentTop + (parseInt(before.getPropertyValue("top"), 10)),
      beforeYEnd = beforeYStart + parseInt(before.height, 10);

  var after = window.getComputedStyle(parentElem, ':after');
  
  var afterStart = parentLeft + (parseInt(after.getPropertyValue("left"), 10)),
      afterEnd = afterStart + parseInt(after.width, 10);

  var afterYStart = parentTop + (parseInt(after.getPropertyValue("top"), 10)),
      afterYEnd = afterYStart + parseInt(after.height, 10);

  var mouseX = event.clientX,
      mouseY = event.clientY;

  beforeClicked = (mouseX >= beforeStart && mouseX <= beforeEnd && mouseY >= beforeYStart && mouseY <= beforeYEnd ? true : false);

  afterClicked = (mouseX >= afterStart && mouseX <= afterEnd && mouseY >= afterYStart && mouseY <= afterYEnd ? true : false);
  
  return {
  	"before" : beforeClicked,
    "after"  : afterClicked
    
  };      

}


$("div").click(function() {
	$("p.proof").html(`${(psuedoClick(this).before ? "Before" : "After")} has been clicked...`);

});