当前位置:首页 > 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 中实现动态路由通常涉及以下几个关键步骤: 使用 Vue Router 的动态路由匹配 通过 Vue Router 的 :param 语法可以实现动态路由匹配。…

node vue实现

node vue实现

Node.js 与 Vue.js 实现方案 环境搭建 安装 Node.js(建议 LTS 版本),通过 npm 或 yarn 初始化项目。Vue.js 可通过 Vue CLI 快速搭建: npm…

vue 实现token 登录

vue 实现token 登录

安装依赖 确保项目中已安装 axios 和 vue-router。若未安装,可通过以下命令安装: npm install axios vue-router 配置axios拦截器 在 src 目录下创…

vue实现的setdata

vue实现的setdata

Vue 中实现类似小程序 setData 的方法 在小程序中,setData 方法用于异步更新页面数据并触发视图渲染。Vue 中可以通过以下几种方式实现类似功能: 直接使用 Vue 的响应式系统 V…

vue实现页面切换

vue实现页面切换

Vue 实现页面切换的方法 在 Vue 中实现页面切换通常可以通过以下几种方式完成,具体选择取决于项目需求和架构设计。 使用 Vue Router Vue Router 是 Vue.js 官方推荐的…

vue实现组件封装

vue实现组件封装

Vue 组件封装方法 封装组件的基本步骤 创建独立的 .vue 文件,包含 template、script 和 style 三个部分。通过 props 接收父组件传递的数据,使用 $emit 触发自…