JS实现控制图片显示大小的方法【图片等比例缩放功能】

下面是JS实现控制图片显示大小的方法的完整攻略,包含以下步骤:

步骤 1:准备工作

在HTML文档中添加一个图片:

<img src="图片链接" alt="图片说明">

步骤 2:给图片添加ID

为图片添加一个ID,方便后续在JS中引用该图片:

<img id="pic" src="图片链接" alt="图片说明">

步骤 3:编写JS代码

接下来,我们要编写JS代码,实现图片等比例缩放的功能。具体步骤如下:

  1. 获取图片对象

在JS中,我们使用document.getElementById()函数获取图片对象,代码如下:

var pic = document.getElementById("pic");
  1. 计算缩放比例

接下来,我们需要计算图片缩放的比例。我们可以使用图片真实宽度和高度,以及图片容器(例如div)的宽度和高度,来计算图片需要缩放的比例。

var containerWidth = document.getElementById("container").offsetWidth; // 获取容器宽度
var containerHeight = document.getElementById("container").offsetHeight; // 获取容器高度
var picWidth = pic.naturalWidth; // 获取图片真实宽度
var picHeight = pic.naturalHeight; // 获取图片真实高度

if (picWidth > containerWidth || picHeight > containerHeight) {
  if ((picWidth / containerWidth) > (picHeight / containerHeight)) {
    var ratio = containerWidth / picWidth;
  } else {
    var ratio = containerHeight / picHeight;
  }
} else {
  var ratio = 1;
}
  1. 设置图片缩放

最后,我们使用CSS来设置图片的缩放,并将缩放比例应用到CSS样式中:

pic.style.width = picWidth * ratio + "px";
pic.style.height = picHeight * ratio + "px";

示例 1:等比例缩放图片

下面是一个完整的JS代码示例,实现等比例缩放图片的效果:

<html>
<head>
  <style>
    #container {
      width: 500px;
      height: 500px;
      border: 1px solid #ccc;
    }
    #pic {
      display: block;
      margin: 0 auto;
    }
  </style>
</head>
<body>
  <div id="container">
    <img id="pic" src="图片链接" alt="图片说明">
  </div>
  <script>
    var pic = document.getElementById("pic");
    var containerWidth = document.getElementById("container").offsetWidth;
    var containerHeight = document.getElementById("container").offsetHeight;
    var picWidth = pic.naturalWidth;
    var picHeight = pic.naturalHeight;

    if (picWidth > containerWidth || picHeight > containerHeight) {
      if ((picWidth / containerWidth) > (picHeight / containerHeight)) {
        var ratio = containerWidth / picWidth;
      } else {
        var ratio = containerHeight / picHeight;
      }
    } else {
      var ratio = 1;
    }

    pic.style.width = picWidth * ratio + "px";
    pic.style.height = picHeight * ratio + "px";
  </script>
</body>
</html>

示例 2:点击按钮也可以缩放图片

下面是一个完整的JS代码示例,实现点击按钮也可以缩放图片的效果:

<html>
<head>
  <style>
    #container {
      width: 500px;
      height: 500px;
      border: 1px solid #ccc;
    }
    #pic {
      display: block;
      margin: 0 auto;
    }
  </style>
</head>
<body>
  <div id="container">
    <img id="pic" src="图片链接" alt="图片说明">
  </div>
  <button id="button">点击缩放</button>
  <script>
    var pic = document.getElementById("pic");
    var containerWidth = document.getElementById("container").offsetWidth;
    var containerHeight = document.getElementById("container").offsetHeight;
    var picWidth = pic.naturalWidth;
    var picHeight = pic.naturalHeight;

    function resizePic() {
      if (picWidth > containerWidth || picHeight > containerHeight) {
        if ((picWidth / containerWidth) > (picHeight / containerHeight)) {
          var ratio = containerWidth / picWidth;
        } else {
          var ratio = containerHeight / picHeight;
        }
      } else {
        var ratio = 1;
      }

      pic.style.width = picWidth * ratio + "px";
      pic.style.height = picHeight * ratio + "px";
    }

    resizePic(); // 初始执行一次

    document.getElementById("button").addEventListener("click", function() {
      // 随机修改图片宽和高,模拟图片的内容变化
      picWidth = Math.floor(Math.random() * 500) + 200;
      picHeight = Math.floor(Math.random() * 500) + 200;
      resizePic();
    });
  </script>
</body>
</html>

以上是JS实现控制图片显示大小的方法的完整攻略,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现控制图片显示大小的方法【图片等比例缩放功能】 - Python技术站

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

相关文章

  • JS弹出新窗口被拦截的解决方法

    JS弹出新窗口的功能是在网页中常用的,但在很多情况下,弹出的新窗口会被浏览器的弹窗拦截器所拦截,导致网页运行结果不如预期。本篇攻略将会提供几种JS弹窗被拦截的解决方法。 一、使用window.open()打开新窗口 常规的弹出新窗口实现方式是使用window.open()方法,在这种情况下,浏览器的弹窗拦截器很容易就将其拦截。为了避免这种情况,我们可以设定新…

    JavaScript 2023年6月11日
    00
  • Javascript 闭包详解及实例代码

    JavaScript 闭包详解及实例代码 什么是闭包? 在 JavaScript 中,闭包是一种特殊的函数,它可以访问在它创建时外部作用域的变量和参数,即使这些变量和参数在函数调用时已经不存在了。 简单来说,闭包就是“函数和函数所能够访问的外部变量的一个共同体”。 闭包的运作原理 在 JavaScript 中,每次创建一个函数,都会同时创建一个作用域链(sc…

    JavaScript 2023年6月10日
    00
  • JavaScript实现动态添加、移除元素或属性的方法分析

    JavaScript实现动态添加、移除元素或属性的方法分析 动态添加元素 方法一:createElement()方法 我们可以使用createElement()方法来创建一个新的元素节点,然后将该节点添加到文档中的某个元素中作为其子元素。其基本语法为: document.createElement(tagName) 其中,tagName指定新节点的标签名称,…

    JavaScript 2023年6月10日
    00
  • js获取事件源及触发该事件的对象

    获取事件源对象和触发该事件的对象是 Javascript 事件处理的重要操作。下面,我将为大家分享完整的攻略。 获取事件源对象 事件源对象指的是触发该事件的元素或节点。通常,我们使用 event.target、event.srcElement 等属性来获取事件源对象。 event.target:事件发生时,事件的目标节点(最深嵌套的节点)。 event.sr…

    JavaScript 2023年6月10日
    00
  • JavaScript 事件属性绑定带参数的函数

    JavaScript 事件属性绑定带参数的函数,是指在绑定事件时,可以将一个或多个参数传递给要执行的函数。这种技术非常常用,特别是在处理事件时需要传递一些额外参数的情况下。 使用匿名函数绑定带参数的函数 使用匿名函数是一种常见的方式,可以在匿名函数中调用需要执行的函数,并将需要传递的参数传递给它。例如,我们可以在HTML中这样绑定一个带参数的click事件:…

    JavaScript 2023年6月10日
    00
  • js实现的万能flv网页播放器代码

    关于“js实现的万能flv网页播放器代码”的攻略,可以分为以下几个步骤: 1. 准备工作 在开始编写代码之前,我们需要准备以下三个必备元素:flv.js库、video.js库、以及我们要播放的flv文件。 flv.js:是一个轻量级的HTTP-FLV播放器库,可以用于浏览器内嵌播放Flv视频文件,它是基于浏览器原生的Media Source Extensio…

    JavaScript 2023年5月28日
    00
  • JavaScript 模块化编程(笔记)

    JavaScript 模块化编程(笔记) JavaScript 模块化编程是现代 JavaScript 开发中一种流行的方式。它通过把复杂的代码分成多个集中化独立的小模块,使代码更易于维护和适应不断变化的需求。 模块化编程基本概念 导入 import: 在一个模块中,用 import 语句引入其他模块的代码。 导出 export: 在一个模块中,用 expo…

    JavaScript 2023年6月10日
    00
  • javascript函数的四种调用模式

    下面是关于“JavaScript函数的四种调用模式”的完整攻略,分别是方法调用模式、函数调用模式、构造器调用模式和apply/call调用模式。 方法调用模式 当一个函数被定义为一个对象的属性时,该函数被称为一个方法。当使用对象的属性名调用该函数时,该函数内的this关键字将被绑定到该对象。 示例: let obj = { name: ‘Tom’, sayH…

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