91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用jQuery和CSS實現縮略圖懸浮逼近效果

發布時間:2021-08-10 13:38:14 來源:億速云 閱讀:134 作者:chen 欄目:web開發

這篇文章主要講解了“怎么用jQuery和CSS實現縮略圖懸浮逼近效果”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用jQuery和CSS實現縮略圖懸浮逼近效果”吧!

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

實例下載

你可以在這個網站https://cache.yisu.com/upload/information/20210521/366/474763.com" /> 

  •             <div class="pe-description"> 

  •                 <h4>Time</h4> 

  •                 <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 h4{      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  };

感謝各位的閱讀,以上就是“怎么用jQuery和CSS實現縮略圖懸浮逼近效果”的內容了,經過本文的學習后,相信大家對怎么用jQuery和CSS實現縮略圖懸浮逼近效果這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新晃| 余干县| 蓝田县| 呼和浩特市| 合山市| 津南区| 边坝县| 云霄县| 循化| 彩票| 吴桥县| 前郭尔| 梁平县| 西城区| 杨浦区| 宝应县| 井冈山市| 武强县| 镇巴县| 岱山县| 绥宁县| 奎屯市| 安顺市| 城固县| 施甸县| 夹江县| 丹巴县| 葫芦岛市| 沧源| 清丰县| 登封市| 巩义市| 双江| 古丈县| 绍兴县| 循化| 榕江县| 海林市| 共和县| 渑池县| 扎兰屯市|