<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      分享使用jQuery和CSS實現的一個超酷縮略圖懸浮逼近效果

      分享使用jQuery和CSS實現的一個超酷縮略圖懸浮逼近效果

      在線演示  本地下載

      今天我們為大家介紹一個使用jQuery實現的縮略圖逼近效果。主要的想法是當鼠標接近縮略圖后,當前的縮略圖會放大,并且周圍相鄰的縮略圖也會相應變大一些,當你移動鼠標時,會影響移動方向上的縮略圖大小變化,具體效果請大家查看演示。

      你可以在這個網站http://porscheeveryday.com/ 看到這個效果的原型,這里我們使用jQuery實現了一個jQuery版本的基本效果,希望大家喜歡!

      在這個教程中,我們將使用James PadolseyjQuery Proximity plugin

       

      HTML標簽

      以下代碼生成一個無序的縮略圖并且添加相關圖片描述:

      <ul id="pe-thumbs" class="pe-thumbs">
      <li>
      <a href="#">
      <img src="images/thumbs/1.jpg" />
      <div class="pe-description">
      <h3>Time</h3>
      <p>Since time, and his predestinated end</p>
      </div></a>
      </li>
      <li><!-- ... --></li>
      </ul>

      CSS樣式

      以下定義了縮略圖居中,并且添加背景圖片使得圖片產生透明度變化效果

      .pe-thumbs{
      width
      : 900px;
      height
      : 400px;
      margin
      : 20px auto;
      position
      : relative;
      background
      : transparent url(../images/3.jpg) top center;
      border
      : 5px solid #fff;
      box-shadow
      : 0 1px 2px rgba(0,0,0,0.2);
      }
      同時我們也使用一個RGBA的背景顏色添加一個小點綴到背景圖片。 
      .pe-thumbs:before {
      content
      : "";
      display
      : block;
      position
      : absolute;
      top
      : 0px;
      left
      : 0px;
      width
      : 100%;
      height
      : 100%;
      background
      : rgba(255,102,0,0.2);
      }
      列表中的項目將會向左float,并且我們設置錨定和圖片的相對位置:
      .pe-thumbs li{
      float
      : left;
      position
      : relative;
      }
      .pe-thumbs li a,
      .pe-thumbs li a img
      {
      display
      : block;
      position
      : relative;
      }
      每一個縮略圖都初始100px并且透明度為0.2:
      .pe-thumbs li a img{
      width
      : 100px;
      opacity
      : 0.2;
      }
      最后我們定義描述內容的樣式:
      .pe-description h3{
      padding
      : 10px 10px 0px 10px;
      line-height
      : 20px;
      font-family
      : 'BebasNeueRegular', 'Arial Narrow', Arial, sans-serif;
      font-size
      : 22px;
      margin
      : 0px;
      }
      .pe-description p
      {
      padding
      : 10px 0px;
      margin
      : 10px;
      font-size
      : 11px;
      font-style
      : italic;
      border-top
      : 1px solid rgba(255,255,255,0.3);
      }

      Javascript代碼

      主要的想法是當鼠標懸浮后計算所有的描述容器大小和位置。主要依賴于縮略圖的最大尺寸及其居于主要wrapper中的位置。例如,當縮略圖接近邊緣,我們就使得描述區域顯示在縮略圖左邊

      然后我們將幫定逼近事件到圖片。主要想法是根據鼠標位置來變化圖片大小。一旦圖片達到最大尺寸,我們設置z-index最高,因此位于最高層次,并且顯示分開的描述。

      // list of thumbs
      var $list = $('#pe-thumbs'),
      // list's width and offset left.
      // this will be used to know the position of the description container
      listW = $list.width(),
      listL = $list.offset().left,
      // the images
      $elems = $list.find('img'),
      // the description containers
      $descrp = $list.find('div.pe-description'),
      // maxScale : maximum scale value the image will have
      // minOpacity / maxOpacity : minimum (set in the CSS) and maximum values for the image's opacity
      settings = {
      maxScale : 1.3,
      maxOpacity : 0.9,
      minOpacity : Number( $elems.css('opacity') )
      },
      init = function() {

      // minScale will be set in the CSS
      settings.minScale = _getScaleVal() || 1;
      // preload the images (thumbs)
      _loadImages( function() {

      _calcDescrp();
      _initEvents();

      });

      },
      // Get Value of CSS Scale through JavaScript:
      // http://css-tricks.com/get-value-of-css-rotation-through-javascript/
      _getScaleVal= function() {

      var st = window.getComputedStyle($elems.get(0), null),
      tr = st.getPropertyValue("-webkit-transform") ||
      st.getPropertyValue("-moz-transform") ||
      st.getPropertyValue("-ms-transform") ||
      st.getPropertyValue("-o-transform") ||
      st.getPropertyValue("transform") ||
      "fail...";

      if( tr !== 'none' ) {

      var values = tr.split('(')[1].split(')')[0].split(','),
      a = values[0],
      b = values[1],
      c = values[2],
      d = values[3];

      return Math.sqrt( a * a + b * b );

      }

      },
      // calculates the style values for the description containers,
      // based on the settings variable
      _calcDescrp = function() {

      $descrp.each( function(i) {

      var $el = $(this),
      $img = $el.prev(),
      img_w = $img.width(),
      img_h = $img.height(),
      img_n_w = settings.maxScale * img_w,
      img_n_h = settings.maxScale * img_h,
      space_t = ( img_n_h - img_h ) / 2,
      space_l = ( img_n_w - img_w ) / 2;

      $el.data( 'space_l', space_l ).css({
      height : settings.maxScale * $el.height(),
      top : -space_t,
      left : img_n_w - space_l
      });

      });

      },
      _initEvents = function() {

      $elems.on('proximity.Photo', { max: 80, throttle: 10, fireOutOfBounds : true }, function(event, proximity, distance) {

      var $el = $(this),
      $li = $el.closest('li'),
      $desc = $el.next(),
      scaleVal = proximity * ( settings.maxScale - settings.minScale ) + settings.minScale,
      scaleExp = 'scale(' + scaleVal + ')';

      // change the z-index of the element once
      // it reaches the maximum scale value
      // also, show the description container
      if( scaleVal === settings.maxScale ) {

      $li.css( 'z-index', 1000 );

      if( $desc.offset().left + $desc.width() > listL + listW ) {

      $desc.css( 'left', -$desc.width() - $desc.data( 'space_l' ) );

      }

      $desc.fadeIn( 800 );

      }
      else {

      $li.css( 'z-index', 1 );

      $desc.stop(true,true).hide();

      }

      $el.css({
      '-webkit-transform' : scaleExp,
      '-moz-transform' : scaleExp,
      '-o-transform' : scaleExp,
      '-ms-transform' : scaleExp,
      'transform' : scaleExp,
      'opacity' : ( proximity * ( settings.maxOpacity - settings.minOpacity ) + settings.minOpacity )
      });

      });

      },
      _loadImages = function( callback ) {

      var loaded = 0,
      total = $elems.length;

      $elems.each( function(i) {

      var $el = $(this);

      $('<img>').load( function() {

      ++loaded;
      if( loaded === total )
      callback.call();

      }).attr( 'src', $el.attr('src') );

      });

      };

      return {
      init : init
      };







      posted @ 2012-01-09 23:00  igeekbar  閱讀(2836)  評論(1)    收藏  舉報

      中文互聯: GBin1.com | RSS訂閱 | 郵件訂閱 | 手機訂閱

      主站蜘蛛池模板: 国产成人精品无码播放| 亚洲国产在一区二区三区| 亚洲一二三四区中文字幕| 亚洲中文字幕五月五月婷| 欧美色欧美亚洲高清在线观看| 中文字幕人妻中出制服诱惑 | 日韩AV片无码一区二区不卡| 亚洲人成在线播放网站| 日本道高清一区二区三区| 亚洲人精品午夜射精日韩| 午夜欧美精品久久久久久久| 熟妇的味道hd中文字幕| 风骚少妇久久精品在线观看| 精品久久久久久无码国产| 最近中文字幕国产精选| 国产精品偷伦费观看一次| 国产精品丝袜亚洲熟女| 亚洲午夜性猛春交xxxx| 久久国产精品亚洲精品99| 亚洲一区久久蜜臀av| 亚洲色丰满少妇高潮18p| 日韩免费码中文在线观看| 四虎永久精品免费视频| 来宾市| 国产一级精品在线免费看| 亚洲国产在一区二区三区| 昌黎县| 国产精品久久久久影院色| 久热爱精品视频线路一| 忘忧草在线社区www中国中文| 亚洲精品国产老熟女久久| 亚洲精品在线少妇内射| 一区二区丝袜美腿视频| 亚洲av中文久久精品国内| 99在线视频免费观看| 99久热在线精品视频| 久99久热这里只有精品| a国产一区二区免费入口| 看亚洲黄色不在线网占| 少妇午夜福利一区二区三区| 久久亚洲精品11p|