You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让函数适配多ID元素,点击触发对应元素的Fullscreen API

解决方案:通用全屏函数实现

完全不需要为12个ID重复写相同的函数,只需要一个通用函数就能处理所有图片的全屏请求,下面给你两种简单可行的实现方式:

方法一:直接通过点击事件传参(适合新手快速上手)

这种方法不需要额外的事件绑定逻辑,直接给每张图片添加点击事件,把当前点击的元素传给函数:

HTML 代码

<!-- 给每张图片添加 onclick 事件,传入 this 指代当前点击的图片 -->
<img src="你的图片路径1.jpg" onclick="openFullscreen(this)">
<img src="你的图片路径2.jpg" onclick="openFullscreen(this)">
<!-- 剩下10张图片依葫芦画瓢即可 -->

JavaScript 代码

function openFullscreen(element) {
  // 兼容不同浏览器的全屏API前缀
  if (element.requestFullscreen) {
    element.requestFullscreen();
  } else if (element.webkitRequestFullscreen) { 
    element.webkitRequestFullscreen();
  } else if (element.msRequestFullscreen) { 
    element.msRequestFullscreen();
  }
}

方法二:事件委托(更高效的写法)

如果觉得给每张图片加 onclick 太麻烦,可以用事件委托——给图片的父容器绑定一个点击事件,自动判断点击的是哪张图片:

HTML 代码

<!-- 把所有图片放在同一个容器里 -->
<div class="gallery">
  <img src="你的图片路径1.jpg" class="gallery-img">
  <img src="你的图片路径2.jpg" class="gallery-img">
  <!-- 剩下10张图片 -->
</div>

JavaScript 代码

// 获取图片容器
const gallery = document.querySelector('.gallery');

// 给容器绑定点击事件
gallery.addEventListener('click', function(e) {
  // 判断点击的元素是图片
  if (e.target.classList.contains('gallery-img')) {
    // 调用全屏函数,传入当前点击的图片
    openFullscreen(e.target);
  }
});

function openFullscreen(element) {
  if (element.requestFullscreen) {
    element.requestFullscreen();
  } else if (element.webkitRequestFullscreen) { 
    element.webkitRequestFullscreen();
  } else if (element.msRequestFullscreen) { 
    element.msRequestFullscreen();
  }
}

额外提示

  • 你原来代码里的 var elem = document.getElementById("image1"); 没有用到,可以直接删掉。
  • 全屏API在部分浏览器里可能需要用户手动触发(比如点击事件),这也是为什么要通过点击触发的原因,符合浏览器的安全规则。

内容的提问来源于stack exchange,提问作者Someone Someone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:32:26