基于jquery实现图片放大功能

下面是“基于jQuery实现图片放大功能”的完整攻略:

1. 从CDN引入jQuery库

在html文件中引入jQuery库,可以从CDN上引入,例如

<script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script>

2. HTML结构准备

将需要放大的图片放到img标签中,加上对应的id和class,例如:

<img id="originImg" class="img-fluid" src="https://picsum.photos/id/237/200/300" alt="image">

3. CSS样式设置

为图片加上CSS样式,使其能够被鼠标hover和放大,并设置过渡效果:

.img-fluid {
  cursor: pointer;
  transition: transform .3s ease-out;
}
.img-fluid:hover {
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
  z-index: 10;
}

4. jQuery代码实现图片放大

编写jQuery代码,实现当鼠标滑过图片时,显示放大图,鼠标离开时,隐藏放大图的效果。具体代码如下:

$(function() {
  $("#originImg").hover(function() {
    var img_src = $(this).attr('src');
    $("body").append("<div id='img-modal'><img src='" + img_src + "'><div>");
    $("#img-modal").fadeIn(300);
  }, function() {
    $("#img-modal").fadeOut(300, function() {
      $("#img-modal").remove();
    });
  });
});

上述代码实现了当鼠标悬浮在图片上时,动态创建一个包含放大图片的带有遮罩层的div,并在div内部创建放大图片,再将该div插入到body中。当鼠标离开图片时,将div和遮罩层淡出,并将div从body中删除。需要注意的是,放大图片的大小应该是原图片的几倍,可以通过设置图片的宽度和高度实现。

5. 示例说明

以下是两个示例说明:

示例一:使用自定义大小的放大图片

<img id="originImg" class="img-fluid" src="https://picsum.photos/id/237/200/300" alt="image">

<style>
  .img-fluid {
    cursor: pointer;
    transition: transform .3s ease-out;
  }
  .img-fluid:hover {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
    z-index: 10;
  }
  #img-modal {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 10;
    display: none;
  }
  #img-modal img {
    width: 500px;
    height: 500px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
</style>

<script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script>

<script>
  $(function() {
    $("#originImg").hover(function() {
      var img_src = $(this).attr('src');
      $("body").append("<div id='img-modal'><img src='" + img_src + "'></div>");
      $("#img-modal").fadeIn(300);
    }, function() {
      $("#img-modal").fadeOut(300, function() {
        $("#img-modal").remove();
      });
    });
  });
</script>

在上述示例中,我们添加了一些其他的CSS样式,创建了一个500x500的放大图。可以根据自己的需要调整放大图的大小。

示例二:在多个图片上使用该功能

<style>
  .img-fluid {
    cursor: pointer;
    transition: transform .3s ease-out;
    margin-right: 10px;
  }
  .img-fluid:hover {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
    z-index: 10;
  }
  #img-modal {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 10;
    display: none;
  }
  #img-modal img {
    width: 500px;
    height: 500px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
</style>

<script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script>

<script>
  $(function() {
    $(".img-fluid").hover(function() {
      var img_src = $(this).attr('src');
      $("body").append("<div id='img-modal'><img src='" + img_src + "'></div>");
      $("#img-modal").fadeIn(300);
    }, function() {
      $("#img-modal").fadeOut(300, function() {
        $("#img-modal").remove();
      });
    });
  });
</script>

<img class="img-fluid" src="https://picsum.photos/id/237/200/300" alt="image">
<img class="img-fluid" src="https://picsum.photos/id/340/200/300" alt="image">
<img class="img-fluid" src="https://picsum.photos/id/850/200/300" alt="image">
<img class="img-fluid" src="https://picsum.photos/id/1024/200/300" alt="image">

在上述示例中,我们使用了相同的CSS和jQuery代码,但是将类名改为了通用的“img-fluid”,这样我们就可以在多个图片上使用和应用上述功能了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于jquery实现图片放大功能 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQWidgets jqxSortable appendTo属性

    大家好,我是本站的作者,下面我将详细讲解jQWidgets jqxSortable插件的appendTo属性。 jQWidgets jqxSortable插件介绍 jQWidgets jqxSortable插件是基于jQuery和jQWidgets的一款用于页面元素拖动排序的插件。它提供了多种常用配置和事件,可以帮助我们快速实现页面元素排序的功能。 appe…

    jquery 2023年5月12日
    00
  • EasyUI jQuery滑块小工具

    EasyUI jQuery滑块小工具 EasyUI是一个基于jQuery的UI库,其中包含了很多常用的UI组件,包括按钮、弹窗、表格、表单等等。其中就有一个滑块小工具,可以用来设置范围值。 引入EasyUI和jQuery <link rel="stylesheet" type="text/css" href=&q…

    jquery 2023年5月13日
    00
  • 如何使用Javascript正则表达式来格式化XML内容

    首先,要理解XML内容的格式化,我们需要知道XML是由一系列标记和文本节点组成的树状结构。 为了方便阅读和处理XML,我们可以使用JS正则表达式来格式化XML内容。以下是使用JS正则表达式来格式化XML的完整攻略: 步骤一:读取XML内容并转换为文本字符串 我们可以使用XML DOM对象的XMLSerializer方法,将XML内容转换为字符串。例如: va…

    jquery 2023年5月28日
    00
  • jquery拖动层效果插件用法实例分析(附demo源码)

    以下是对“jquery拖动层效果插件用法实例分析(附demo源码)” 的完整攻略。 一、插件介绍 这是一款jQuery拖动层效果插件,拥有多种自定义配置选项,可以自由控制拖动效果。其中,常用的配置选项包括:- dragObj: 拖动对象的样式名称或JQuery对象(必选参数)- handle: 拖动对象的拖动句柄(可选参数)- zIndex: 拖动对象的Z轴…

    jquery 2023年5月28日
    00
  • Underscore.js _.contains函数

    Underscore.js是JavaScript中一个备受欢迎的函数式编程库。它提供了许多方便的函数和工具,使得处理数据集合和对象变得更加容易。其中的_.contains函数可以用来检查给定的集合或字符串中是否包含了指定的值。 函数定义 _.contains(list, value, [fromIndex])- list(集合): 要被检查的集合,可以是数组…

    jquery 2023年5月12日
    00
  • jQuery 使用手册(二)

    以下是关于“jQuery 使用手册(二)”的完整攻略: jQuery 使用手册(二) 1. 选择器 在 jQuery 中,可以使用选择器来选择需要操作的 HTML 元素。 1.1 基本选择器 筛选所有元素:* 根据标签选择元素:tagname 根据 id 选择元素:#id 根据 class 选择元素:.class 示例: <!DOCTYPE html&…

    jquery 2023年5月27日
    00
  • 关于jQuery.ajax()的jsonp碰上post详解

    关于jQuery.ajax()的jsonp和post的使用,可以通过以下方式进行详细讲解: 1. 什么是jsonp和post 1.1 JSONP JSONP(JSON with Padding)是一种跨域技术,可以用于从其他域名获取数据。它通过动态创建script标签,将服务器返回的数据作为参数传递给一个回调函数,从而实现跨域请求。JSONP只能用于get请…

    jquery 2023年5月28日
    00
  • jQuery上下文属性

    当在 jQuery 中操作元素时,jQuery 可以接收一个参数,被称为 context 或 上下文,用于引用选择器时需要查找的某个特定元素的上下文。通过设置上下文,可以让 jQuery 只在指定的区域内搜索元素,以提高查找元素的效率。 在 jQuery 中,可以使用 .find() 方法来指定上下文,也可以使用 $() 标记符内部的第二个参数来指定上下文。…

    jquery 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部