***Descarga también el respectivo Flash Tool***
Reporta cualquier error a miweb.ds@gmail.com

viernes, 25 de diciembre de 2015

Sencillo efecto lupa con jQuery+HTML+CSS (sin plugins)

Código.gs function doGet () { var html = HtmlService.createTemplateFromFile ( "... thumbnail 1 summary


function doGet() {
  var html = HtmlService.createTemplateFromFile("page").evaluate();
  return html;

function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename)


<?!= include('css'); ?>
<?!= include('js'); ?>

<!-- Lets make a simple image magnifier -->
<div class="magnify">
 <!-- This is the magnifying glass which will contain the original/large version -->
 <div class="large"></div>
 <!-- This is the small image -->
 <img class="small" src="http://drive.google.com/uc?export=view&id=0B1SOjZgUAnEMa3JPb2hJUlY3V2s" width="480" height="260"/>


/*Some CSS*/
* {margin: 0; padding: 0;}
.magnify {width: 480px; margin: 50px auto; position: relative;}

/*Lets create the magnifying glass*/
.large {
 width: 200px; height: 200px;
 position: absolute;
 /*border-radius: 100%;************************COLOCAR ESTA LINEA PARA LUPA REDONDA*************************/
 /*Multiple box shadows to achieve the glass effect*/
 box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.85), 
 0 0 7px 7px rgba(0, 0, 0, 0.25), 
 inset 0 0 40px 2px rgba(0, 0, 0, 0.25);
 /*Lets load up the large image first*/
 background: url('http://drive.google.com/uc?export=view&id=0B1SOjZgUAnEMa3JPb2hJUlY3V2s') no-repeat;
 /*hide the glass by default*/
 display: none;

/*To solve overlap bug at the edges during magnification*/
.small { display: block; }


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>


 var native_width = 0;
 var native_height = 0;

 //Now the mousemove function
  //When the user hovers on the image, the script will first calculate
  //the native dimensions if they don't exist. Only after the native dimensions
  //are available, the script will show the zoomed version.
  if(!native_width && !native_height)
   //This will create a new image object with the same image as that in .small
   //We cannot directly get the dimensions from .small because of the 
   //width specified to 200px in the html. To get the actual dimensions we have
   //created this image object.
   var image_object = new Image();
   image_object.src = $(".small").attr("src");
   //This code is wrapped in the .load function which is important.
   //width and height of the object would return 0 if accessed before 
   //the image gets loaded.
   native_width = image_object.width;
   native_height = image_object.height;
   //x/y coordinates of the mouse
   //This is the position of .magnify with respect to the document.
   var magnify_offset = $(this).offset();
   //We will deduct the positions of .magnify from the mouse positions with
   //respect to the document to get the mouse positions with respect to the 
   var mx = e.pageX - magnify_offset.left;
   var my = e.pageY - magnify_offset.top;
   //Finally the code to fade out the glass if the mouse is outside the container
   if(mx < $(this).width() && my < $(this).height() && mx > 0 && my > 0)
    //The background position of .large will be changed according to the position
    //of the mouse over the .small image. So we will get the ratio of the pixel
    //under the mouse pointer with respect to the image and use that to position the 
    //large image inside the magnifying glass
    var rx = Math.round(mx/$(".small").width()*native_width - $(".large").width()/2)*-1;
    var ry = Math.round(my/$(".small").height()*native_height - $(".large").height()/2)*-1;
    var bgp = rx + "px " + ry + "px";
    //Time to move the magnifying glass with the mouse
    var px = mx - $(".large").width()/2;
    var py = my - $(".large").height()/2;
    //Now the glass moves with the mouse
    //The logic is to deduct half of the glass's width and height from the 
    //mouse coordinates to place it with its center at the mouse coordinates
    //If you hover on the image now, you should see the magnifying glass in action
    $(".large").css({left: px, top: py, backgroundPosition: bgp});

Funciona a la perfección en GHS. Cortesía de http://thecodeplayer.com/

Video del ejemplo
***Enlace para obtener copia del proyecto con el código ejemplo en descripción del video***

No hay comentarios

Publicar un comentario en la entrada