首頁 > web前端 > js教程 > 如何使用JavaScript動態建立影像元素?

如何使用JavaScript動態建立影像元素?

王林
發布: 2023-08-24 18:21:14
轉載
1251 人瀏覽過

如何使用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數組,需要在網頁中追加多張動態圖片。

以上是如何使用JavaScript動態建立影像元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板