<div id="off"></div>
<div id="on">drag me</div>
<div id="options">
  Options</br>
  <button id="light" class="buttonOn">Light</button>
  <button id="color">Color</button>
  <button id="blur">Blur</button> 
</div>
		@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700);
html, body {
  margin:0;
  padding:0;
}
#off {
  background:#000 url(https://dl.dropboxusercontent.com/s/caginibqetx0tek/dark.jpg) left top no-repeat fixed;
  background-size:100% 100%;
  position:absolute;
  top:0;
  left:0;
  margin:0;
  padding:0;
  width:100%;
  height:100%;
  overflow:hidden;
}
#on{
  position:absolute;
  /* Text style within circle */
  font-family:'Open Sans',sans-serif;
  font-weight:400;
  font-size:2em;
  text-align:center;
  /* Line height on text vertical aligns text */
  line-height:250px;
  color:#F00;
  /* Position and size of circle */
  top:50px;
  left:50px;
  height:250px;
  width:250px;
  /* FIXED background of color image of body background */
  background:url(https://dl.dropboxusercontent.com/s/suwggo9d7sced15/light.jpg) left top no-repeat fixed;
  background-size:100% 100%;
  /* Border Radius half the width and height to make a circle */
  -webkit-border-radius: 175px;
  -moz-border-radius: 175px;
  border-radius: 175px;
  /* Inset box shadow to make color image appear to be underneath the circle */
  -moz-box-shadow: 5px 5px 10px 0px rgba(0,0,0,.5) inset; 
  -webkit-box-shadow: 5px 5px 10px 0px rgba(0,0,0,.5) inset;            
  box-shadow: 5px 5px 10px 0px rgba(0,0,0,.5) inset;
  text-shadow:1px 1px 0px #000;
  /* Move icon gives direction */
  cursor:move;
}
#options{
  position:fixed;
  top:20px;
  right:20px;
  width:80px;
  font-family:'Open Sans',sans-serif;
  text-shadow:0px 1px 0px rgba(255,255,255,.2);
  font-weight:700;
  font-size:1em;
  color:#000;
  text-align:center;
  background-color:rgba(204,204,204,.8);
  padding:5px 10px 10px 10px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  -moz-box-shadow: 0px 5px 10px 0px rgba(0,0,0,.8); 
  -webkit-box-shadow: 0px 5px 10px 0px rgba(0,0,0,.8);            
  box-shadow: 0px 5px 10px 0px rgba(0,0,0,.8);
}


.buttonOn,.buttonOn:hover,.buttonOn:active{
  background-color:rgba(255,204,0,.8);
  border:1px #FFCC00 solid;
  text-shadow:0px 1px 0px rgba(255,255,255,.4);
  color:#000;
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  cursor:default;
}

button{
  display:block;
  font-family:'Open Sans',sans-serif;
  font-weight:400;
  font-size:1em;
  color:#000;
  background-color:rgba(255,255,255,.3);
  margin-top:10px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  border:1px #000 solid;
  padding:5px 10px;
  outline:none;
  text-shadow:0px 1px 0px rgba(255,255,255,.2);
  width:80px;
}
button:hover{
  background-color:rgba(255,255,255,.7);
  color:#000;
  border:1px #FFF solid;
  cursor:pointer;
  text-shadow:2px 2px 0px transparent;
}
button:active{
  background-color:rgba(0,0,0,.5);
  color:#FFF;
  border:1px #000 solid;
  cursor:pointer;
  text-shadow:-1px -1px 0px rgba(0,0,0,.7);
  -moz-box-shadow: 2px 2px 5px 0px rgba(0,0,0,.7) inset; 
  -webkit-box-shadow: 2px 2px 5px 0px rgba(0,0,0,.7) inset;            
  box-shadow: 2px 2px 5px 0px rgba(0,0,0,.5) inset;
}

		$(function(){
  $off = $('#off');
  			$on = $('#on').draggable({containment:$off});
      $light = $('#light').on('click',function(){
        if(!$(this).hasClass('buttonOn')){
          $('button').removeClass('buttonOn');
          $(this).addClass('buttonOn');
          $on
            .css('background','url(https://dl.dropboxusercontent.com/s/suwggo9d7sced15/light.jpg) left top no-repeat fixed')
            .css('color','#F00')
            .css('background-size','100% 100%');
          $off
            .css('background','#000 url(https://dl.dropboxusercontent.com/s/caginibqetx0tek/dark.jpg) left top no-repeat fixed')
            .css('background-size','100% 100%');
        }
      });
      $color = $('#color').on('click',function(){
        if(!$(this).hasClass('buttonOn')){
          $('button').removeClass('buttonOn');
          $(this).addClass('buttonOn');
          $on
            .css('background','url(https://dl.dropboxusercontent.com/s/agv5idk1mjrcxbh/color.jpg) left top no-repeat fixed')
            .css('color','#00F')
            .css('background-size','100% 100%');
          $off
            .css('background','#000 url(https://dl.dropboxusercontent.com/s/ll17fqmkham1ekx/bw.jpg) left top no-repeat fixed')
            .css('background-size','100% 100%');
        }
      });
      $blur = $('#blur').on('click',function(){ 
        if(!$(this).hasClass('buttonOn')){
          $('button').removeClass('buttonOn');
          $(this).addClass('buttonOn');
          $on
            .css('background','url(https://dl.dropboxusercontent.com/s/ndom3c7e3s8pf60/bg_clear.jpg) left top no-repeat fixed')
            .css('color','#FC0')
            .css('background-size','100% 100%');
          $off
            .css('background','#000 url(https://dl.dropboxusercontent.com/s/jrvpj3ol83ps8wh/bg_blur.jpg) left top no-repeat fixed')
            .css('background-size','100% 100%');
        }
      });
		})

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js
  2. //cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js