返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么用jQuery和CSS实现缩略图悬浮逼近效果
  • 778
分享到

怎么用jQuery和CSS实现缩略图悬浮逼近效果

2024-04-02 19:04:59 778人浏览 泡泡鱼
摘要

这篇文章主要讲解了“怎么用Jquery和CSS实现缩略图悬浮逼近效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用jQuery和CSS实现缩略图悬浮逼

这篇文章主要讲解了“怎么用JqueryCSS实现缩略图悬浮逼近效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用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实现缩略图悬浮逼近效果这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么用jQuery和CSS实现缩略图悬浮逼近效果

本文链接: https://lsjlt.com/news/77639.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用jQuery和CSS实现缩略图悬浮逼近效果
    这篇文章主要讲解了“怎么用jQuery和CSS实现缩略图悬浮逼近效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用jQuery和CSS实现缩略图悬浮逼...
    99+
    2024-04-02
  • jQuery中怎么实现3D缩略图悬停效果
    本篇文章给大家分享的是有关jQuery中怎么实现3D缩略图悬停效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。thumbnail 的DIV代...
    99+
    2024-04-02
  • 使用jquery怎么实现图片悬浮效果
    使用jquery怎么实现图片悬浮效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码部分<!DOCTYPE html><html&...
    99+
    2023-06-14
  • 如何利用纯css实现缩略图悬停效果
    小编给大家分享一下如何利用纯css实现缩略图悬停效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!缩略图悬停效果如下:源码:<!doctype html><html><head>...
    99+
    2023-06-08
  • css怎么实现悬浮效果的阴影
    这篇文章主要介绍了css怎么实现悬浮效果的阴影,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。要实现的效果图:实现的代码:-webkit-box-shadow:0px ...
    99+
    2023-06-08
  • 利用CSS实现图片悬浮效果的技巧和方法
    在网页设计中,图片悬浮效果是一种常见且吸引眼球的设计方式。通过悬浮效果,可以让用户在鼠标悬浮在图片上时,出现一些动画效果、文字说明或者其他有趣的交互效果。本文将介绍一些利用CSS实现图片悬浮效果的技巧和方法,并提供具体的代码示例。放大效果通...
    99+
    2023-10-21
    CSS 效果 图片悬浮
  • CSS怎么实现右侧底部悬浮效果
    这篇文章主要介绍了CSS怎么实现右侧底部悬浮效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS怎么实现右侧底部悬浮效果文章都会有所收获,下面我们一起来看看吧。HTML我们...
    99+
    2024-04-02
  • 纯CSS怎么实现右侧底部悬浮效果
    这篇文章主要介绍“纯CSS怎么实现右侧底部悬浮效果”,在日常操作中,相信很多人在纯CSS怎么实现右侧底部悬浮效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”纯CSS怎么实现...
    99+
    2024-04-02
  • Android悬浮窗效果怎么实现
    要实现Android的悬浮窗效果,可以采用以下几种方法: 使用系统提供的WindowManager类来创建一个悬浮窗口。可以通过...
    99+
    2023-10-22
    Android
  • 怎么用jquery+CSS实现悬浮登录框遮罩
    这篇文章主要介绍了怎么用jquery+CSS实现悬浮登录框遮罩的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用jquery+CSS实现悬浮登录框遮罩文章都会有所收获,下面我们一起来看看吧。先上效果图,阴影部...
    99+
    2023-06-29
  • CSS实现悬浮标签效果的技巧和方法
    在网页设计中,悬浮标签效果是一种常见且常用的交互效果。它可以在用户鼠标悬停在某个元素上时,展示更多的信息或功能,提供更好的用户体验。本文将介绍一些实现悬浮标签效果的CSS技巧和方法,并提供具体的代码示例。一、基本悬浮标签效果基本的悬浮标签效...
    99+
    2023-10-21
    CSS悬浮效果 标签悬浮实现 CSS技巧和方法
  • 怎么用Three.js+React实现3D文字悬浮效果
    本篇内容介绍了“怎么用Three.js+React实现3D文字悬浮效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景在 Thr...
    99+
    2023-06-29
  • 如何用vue代码实现表格缩略图悬浮放大功能
    这篇文章主要介绍了如何用vue代码实现表格缩略图悬浮放大功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用vue代码实现表格缩略图悬浮放大功能文章都会有所收获,下面我们一起来看看吧。element-ui界...
    99+
    2023-07-04
  • 怎么利用css实现浮雕效果
    这篇文章主要介绍了怎么利用css实现浮雕效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果图如下:浮雕效果需要用到伸缩盒的知识(flex)flex在chrome是完全支持...
    99+
    2023-06-08
  • 怎么用CSS实现图片列表悬停放大效果
    这篇文章主要讲解了“怎么用CSS实现图片列表悬停放大效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用CSS实现图片列表悬停放大效果”吧!代码如下:&...
    99+
    2024-04-02
  • 如何使用纯CSS实现类似悬浮窗口的效果
    悬浮窗口是在网页设计中经常使用的一种效果,它可以提供快速访问功能或者展示重要的信息。本文将介绍如何使用纯CSS来实现类似悬浮窗口的效果,包括具体的代码示例。首先,我们需要在HTML中创建一个容器元素,用于承载悬浮窗口的内容。可以是一个div...
    99+
    2023-10-21
    实现 纯CSS 悬浮窗口
  • javascript怎么实现悬浮跟随框缓动效果
    今天小编给大家分享一下javascript怎么实现悬浮跟随框缓动效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。定义一个运...
    99+
    2023-06-29
  • Android怎么实现桌面悬浮小火箭效果
    这篇文章将为大家详细讲解有关Android怎么实现桌面悬浮小火箭效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下思路使用serivce在后台启动小火箭小火箭使用windowmanager实现...
    99+
    2023-05-30
    android
  • 纯CSS怎么实现鼠标悬停显示图片效果
    这篇文章给大家分享的是有关纯CSS怎么实现鼠标悬停显示图片效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近在做一个网盘的项目,用到了鼠标移上去效果,这个效果可以用js来实现...
    99+
    2024-04-02
  • 如何用纯CSS结合DIV实现右侧底部悬浮效果
    这篇文章主要讲解了“如何用纯CSS结合DIV实现右侧底部悬浮效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用纯CSS结合DIV实现右侧底部悬浮效果”...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作