当前位置:首页 > VUE

vue li实现iframe切换

2026-02-24 16:20:22VUE

在 Vue 中使用 <li> 实现 iframe 切换

核心思路:通过 v-for 渲染列表项,动态绑定 iframesrc 属性,利用点击事件切换内容。

基础实现步骤

创建数据源存储 iframe 的链接列表,例如:

data() {
  return {
    iframeLinks: [
      { id: 1, url: 'https://example.com/page1' },
      { id: 2, url: 'https://example.com/page2' }
    ],
    currentIframeUrl: ''
  }
}

模板中使用 v-for 渲染导航列表:

<ul>
  <li 
    v-for="link in iframeLinks" 
    :key="link.id"
    @click="currentIframeUrl = link.url">
    {{ link.name }}
  </li>
</ul>
<iframe :src="currentIframeUrl" width="100%" height="500px"></iframe>

优化交互体验

添加高亮样式标识当前选中项:

vue li实现iframe切换

<li 
  v-for="link in iframeLinks"
  :class="{ 'active': currentIframeUrl === link.url }"
  @click="handleIframeChange(link.url)">
  {{ link.name }}
</li>

CSS 样式示例:

.active {
  background-color: #42b983;
  color: white;
}

动态加载处理

添加加载状态提示:

methods: {
  handleIframeChange(url) {
    this.isLoading = true;
    this.currentIframeUrl = url;
    // iframe 的 load 事件可通过 ref 监听
  }
}

模板中添加加载指示器:

vue li实现iframe切换

<iframe 
  @load="isLoading = false"
  v-show="!isLoading">
</iframe>
<div v-if="isLoading">Loading...</div>

安全性增强

对于第三方链接,建议使用 sandbox 属性限制权限:

<iframe 
  sandbox="allow-same-origin allow-scripts"
  :src="currentIframeUrl">
</iframe>

响应式设计建议

通过计算属性控制 iframe 高度:

computed: {
  iframeHeight() {
    return window.innerHeight - 200 + 'px';
  }
}

监听窗口变化:

mounted() {
  window.addEventListener('resize', this.handleResize);
},
beforeDestroy() {
  window.removeEventListener('resize', this.handleResize);
}

这种方法适用于需要快速切换不同内容的场景,如文档预览、多平台对比等场景。注意跨域限制可能导致部分功能不可用。

标签: vueli
分享给朋友:

相关文章

vue  select实现

vue select实现

Vue Select 实现方法 在 Vue 中实现下拉选择功能可以使用原生 <select> 标签或第三方库如 vue-select。以下是两种方法的详细说明: 原生 HTML Sele…

vue compile 实现

vue compile 实现

Vue 编译实现原理 Vue 的编译过程将模板字符串转换为渲染函数,主要分为解析、优化和代码生成三个阶段。 解析阶段(Parse) 将模板字符串转换为抽象语法树(AST)。Vue 使用正则表达式和有…

vue实现上传

vue实现上传

Vue 文件上传实现方法 使用 Vue 实现文件上传可以通过原生 HTML5 的 <input type="file"> 元素结合 Vue 的事件处理和数据绑定来实现。 基础实现步骤…

vue computed实现

vue computed实现

计算属性的基本用法 在Vue中,计算属性通过computed选项定义,用于声明依赖于其他属性的动态值。计算属性基于它们的依赖进行缓存,只有依赖发生变化时才会重新计算。 new Vue({ dat…

vue实现队列

vue实现队列

Vue 实现队列功能 在 Vue 中实现队列功能可以通过多种方式完成,以下是几种常见的方法: 使用数组模拟队列 队列遵循先进先出(FIFO)原则,可以用数组的 push 和 shift 方法模拟入队…

vue 实现$(id)

vue 实现$(id)

在 Vue 中实现类似 jQuery 的 $(id) 功能,可以通过以下几种方式操作 DOM 元素: 使用 ref 属性 Vue 推荐使用 ref 属性来直接访问 DOM 元素或组件实例。在模板中为…