JavaScript 如何动态创建图像元素

JavaScript 如何动态创建图像元素

在HTML中,图像元素用于在网页上显示图像。根据要求,它可以接受多个属性,如’src’、’alttext’、’height’、’width’等。

在某些情况下,我们需要动态添加图像到网页中。例如,我们在数据库中存储了未知数量的电影数据。我们需要获取电影数据,并为每个电影显示带有详细信息的电影图像。在这种情况下,我们需要使用JavaScript将图像和数据附加到DOM。

下面,我们将学习如何使用JavaScript向网页添加图像元素。

使用document.createElement()方法

document.createElement()方法使用JavaScript创建任何HTML元素。它以标签名称作为参数,并返回HTML元素。

在JavaScript中创建HTML元素后,我们可以修改其各种属性并将其附加到DOM上,在网页上显示图像。

语法

用户可以按照下面的语法使用document.createElement()方法来动态创建图像元素。

let dynamicImage = document.createElement('img');
dynamicImage.src = URL;

在上面的语法中,我们使用createElement()方法创建了图像元素,并更新了图像元素的’src’属性。

示例

在下面的例子中,我们首先创建了图像元素。然后,我们使用所需显示在网页上的图像URL来更新它的’src’属性。

接下来,我们通过其id从DOM中访问预定义的div元素,并使用appendChild()方法将新创建的图像作为div元素的子元素附加。

在输出中,用户可以观察到使用JavaScript添加了一个图像。

<html>
<body>
   <h3>Using the <i> document.createElement() method </i> to Create image element dynamically using JavaScript </h3>
   <div id = "img"> </div>
   <script>
      let img = document.getElementById('img');
      // Create image element
      let dynamicImage = document.createElement('img');
      // Initialize the image source
      dynamicImage.src = "https://www.tutorialspoint.com/static/images/logo.png";
      // Add image to DOM
      img.appendChild(dynamicImage);
   </script>
</body>
</html>

示例

在下面的示例中,我们创建了一个按钮。每当用户点击按钮时,它会执行createImage()函数。

在createImage()函数中,我们使用createElement()方法创建一个新的图像元素,并更新其‘src’属性值。此外,我们使用setAttribute()方法设置图像的id、高度和宽度。

在输出中,用户可以点击按钮查看200 x 200尺寸的图像。但是,用户可以在代码中更改尺寸并运行代码以观察输出。

<html>
<body>
   <h3>Using the <i> document.createElement() method </i> to Create image element dynamically using JavaScript </h3>
   <div id = "img"> </div>
   <button id = "addImage" onclick = "createImage()"> Create Image </button>
   <script>
      function createImage() {
         let img = document.getElementById('img');
         let newImage = document.createElement('img');
         newImage.src = "https://www.tutorialspoint.com/static/images/simply-easy-learning.png";
         // Set attribute values for the image
         newImage.setAttribute('id', 'myImage');
         newImage.setAttribute('width', '200px');
         newImage.setAttribute('height', '200px');
         img.appendChild(newImage);
      }

   </script>
</body>
</html>

使用Image()构造函数

image()是一种构造函数,用于在JavaScript中创建图像元素的实例。我们使用构造函数和’new’关键字来创建JavaScript中图像的实例,并将其附加到DOM对象中。

语法

用户可以按照以下语法使用Image()构造函数来使用JavaScript创建图像。

Let img = new Image();
img.src = URL;

在上面的语法中,我们使用image()构造函数创建了一个图像元素的实例,并更新了它的src属性的值。

示例

在下面的例子中,当用户点击按钮时,它会执行createImage()函数来动态添加到DOM。

在createImage()函数中,我们使用Image()构造函数初始化图像实例,并在此之后更新其src属性的值。同时,我们通过更新属性值设置图像的宽度和高度,并将其作为div元素的子元素追加。

<html>
<body>
   <h3>Using the <i> Image() constructor </i> to Create image element dynamically using JavaScript</h3>
   <div id = "img"> </div>
   <button id = "addImage" onclick = "createImage()"> Create Image </button>
   <script>
      function createImage() {
         let img = document.getElementById('img');
         let devImage = new Image();
         devImage.src = "https://www.tutorialspoint.com/static/images/development.svg";
         devImage.setAttribute('width', '300px');
         devImage.setAttribute('height', '300px');
         img.appendChild(devImage);
      }
   </script>
</body>
</html>

示例

在下面的示例中,我们使用JavaScript将多个图像添加到网页。

在addMultiple()函数中,我们有一个图像URL的数组。我们遍历数组,在每个迭代中,创建一个新的图像元素,用给定的源URL更新src属性,并将其附加到DOM中。

在输出中,用户可以点击按钮在网页上看到五个动态图像。而且,每次用户点击按钮时,它都会更换图像。

<html>
<body>
   <h3>Using the <i> Image() constructor </i> to Create image element dynamically using JavaScript</h3>
   <div id = "img"> </div>
   <br> <br>
   <button id = "addImage" onclick = "AddMultiple()"> Add Multiple Images </button>
   <script>
      function AddMultiple() {
         let img = document.getElementById('img');
         let imageURLS = [
            "https://picsum.photos/200/300",
            "https://picsum.photos/200/300/?blur",
            "https://picsum.photos/200/300.webp",
            "https://picsum.photos/200",
            "https://picsum.photos/200/300"
         ]
         // Fetch random images and append to the DOM
         for (let i = 0; i < 5; i++) {
            let randomImage = new Image();
            randomImage.src = imageURLS[i];
            randomImage.alt = "Random Image";
            randomImage.width = 100;
            randomImage.height = 100;
            // Add right and left margin to the image
            randomImage.style.marginRight = "10px";
            randomImage.style.marginLeft = "10px";
            img.appendChild(randomImage);
         }
      }
   </script>
</body>
</html>

我们学到了两种方法动态地将图像添加到 Dom 元素中。createElement() 方法可以创建任何 HTML 元素的实例,包括图像元素。image() 构造函数仅用于创建图像元素的实例,而不是其他 HTML 元素。

此外,就像在上一个示例中一样,我们可能会在实时开发中获得一个图像 URL 的数组,并且我们需要将多个动态图像添加到网页中。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程