You can add an observer to monitor the changes in a node. The following example is a modification of this link
depending on what you want to do, you modify it.
<body>
<div id='my-div'>
<p>este es mi div</p>
</div>
<button id='my-button' onclick="hide('my-div')">esconder</button>
<script type="text/javascript">
function hide(id){
if(document.getElementById(id).style.display!='none'){
document.getElementById(id).style.display='none';
}
}
var targetNode=document.getElementById('my-div');
var config = { attributes: true, childList: false };
var callback = function(mutationsList) {
for(var mutation of mutationsList) {
if (mutation.type == 'attributes') {
if(mutation.attributeName=='style'){
if(targetNode.style.display=='none'){
console.log('el elemento se ocultó');
//acá va nuestra función
}else{
console.log('el elemento se hizo visible');
}
}
}
}
};
var observer = new MutationObserver(callback);
observer.observe(targetNode, config);
</script>
</body>