Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<title>Sandbox</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
body { background-color: #000; }
.box {width: 50px; height: 50px; border: 1px solid white}
.highlight {background-color: yellow;}
#controls {position:absolute; top: 300px; color: white;}
</style>
</head>
<body>
  <div id="container">
     <div class="box" style="position:absolute; top: 25px; left: 25px;"></div>
     <div class="box" style="position:absolute; top: 50px; left: 125px;"></div>
     <div class="box" style="position:absolute; top: 100px; left: 25px;"></div>
     <div class="box" style="position:absolute; top: 125px; left: 180px;"></div>
     <div class="box" style="position:absolute; top: 225px; left: 25px;"></div>
     <div class="box" style="position:absolute; top: 185px; left: 125px;"></div>
     <div id="shield" style="position: absolute; width: 200px; top: 0px; background-color: grey; opacity: 0.5;"></div>
  </div>
  <div id="controls">
    Try clicking
  </div>
</body>
</html>
 
// Many thanks to http://jsbin.com/uhuto/1
// I just arranged their work into a jquery plugin
// Plugin
$.fn.passThrough = function (targets) {
    if (this.length) {
        if ('pointerEvents' in this.get(0).style) {
            this.css({'pointer-events': 'none', 'user-select': 'none', 'touch-callout': 'none'});
        } else {
            // Polyfill
            this.bind('click tap mousedown mouseup mouseenter mouseleave', function passThrough (e) {
                $(targets).each(function() {
                    // check if clicked point (taken from event) is inside element
                    var mouseX = e.pageX;
                    var mouseY = e.pageY;
                    var offset = $(this).offset();
                    var width = $(this).width();
                    var height = $(this).height();
                    
                    if (mouseX > offset.left && mouseX < offset.left+width &&
                        mouseY > offset.top && mouseY < offset.top+height) {
                            $(this).trigger(e.type, e);
                    }
                });
            });
        }
    }
    return this;
};
// Usage
$("#shield").passThrough(".box");
// Make the Demo Pretty
$(".box").click(function(){
     $(this).toggleClass("highlight");
});
var dthen = new Date();
        
setInterval(function(){
    dNow = new Date();
    $('#shield').css('height', ((dNow.getSeconds()+(dNow.getMilliseconds()/1000))*50)%300 +'px');
},10);
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers