当前位置:首页 > 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实现下拉层级

vue实现下拉层级

Vue实现下拉层级菜单 使用Vue实现下拉层级菜单可以通过递归组件或动态渲染的方式完成。以下是两种常见实现方法: 递归组件实现 创建一个递归组件处理多级菜单结构: <template>…

vue实现选区

vue实现选区

Vue 实现选区的基本方法 在Vue中实现选区功能通常涉及DOM操作和事件处理。以下是几种常见的方法: 使用原生JavaScript的Selection API 通过window.getSelec…

vue实现sso

vue实现sso

Vue 实现 SSO(单点登录)方案 单点登录(SSO)允许用户通过一次登录访问多个相关系统。以下是基于 Vue 的实现方案: 使用 OAuth2/OpenID Connect 协议 OAuth2…

vue 实现滚动

vue 实现滚动

实现滚动的基本方法 在Vue中实现滚动效果可以通过多种方式完成,包括使用原生JavaScript、CSS或第三方库。以下是一些常见的方法: 使用window.scrollTo方法实现页面滚动 可以…

vue实现全屏

vue实现全屏

Vue 实现全屏功能的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 doc…

vue翻页实现

vue翻页实现

Vue翻页实现方法 基础分页组件实现 使用v-for和计算属性实现基础分页逻辑: <template> <div> <ul> <li…