手っ取り早い、ハッキーな解決策は、ビデオをボタンのz-indexよりも高いz-indexに設定することです。これにより、少なくともボタンがビデオの上に表示されなくなります。
JSソリューションは次のようになります。
HTML
<body>
<div id='video'></div>
<button>click</button>
</body>
CSS
#video { width: 500px; height: 350px; background: #d70; }
button { position: fixed; right: 10%; bottom: 10%; background: #ddd; font-size: 20px; padding: 10px; }
JS(jQuery経由)
$(function () {
//cache a few things
var vid = $('#video'),
button = $('button'),
vid_dims = {w: vid.width(), h: vid.height()};
//on resize, test to see if button is over video
$(window).on('resize', function() {
var button_coords = button.offset(),
vid_coords = vid.offset(),
positive_hit_test = button_coords.left > vid_coords.left && button_coords.left < vid_coords.left + vid_dims.w && button_coords.top > vid_coords.top && button_coords.top < vid_coords.top + vid_dims.h;
//show or hide it accordingly
button.css('visibility', positive_hit_test ? 'hidden' : 'visible'});
});
});
JSFiddle
ちなみに、ボタンを文字通り非表示にするのではなく、可視性を使用していることに注意してdisplay: none
ください。要素が常に検出可能な位置にあるとは限らないためです。