当前位置:首页 > VUE

vue实现开屏广告

2026-03-08 15:23:57VUE

Vue 实现开屏广告的方法

在 Vue 项目中实现开屏广告功能,可以通过多种方式完成。以下是几种常见的实现方法:

使用动态组件结合定时器

创建一个广告组件,在 App.vue 或根组件中动态加载广告组件,通过定时器控制广告显示时间后自动跳转。

<template>
  <div>
    <advertisement v-if="showAd" @close="closeAd" />
    <router-view v-else />
  </div>
</template>

<script>
import Advertisement from './components/Advertisement.vue'

export default {
  components: { Advertisement },
  data() {
    return {
      showAd: true
    }
  },
  methods: {
    closeAd() {
      this.showAd = false
    }
  },
  mounted() {
    setTimeout(() => {
      this.closeAd()
    }, 5000) // 5秒后自动关闭
  }
}
</script>

结合本地存储实现首次展示

利用 localStorage 记录是否首次访问,确保广告只在首次打开时显示。

vue实现开屏广告

mounted() {
  const hasSeenAd = localStorage.getItem('hasSeenAd')
  if (!hasSeenAd) {
    this.showAd = true
    localStorage.setItem('hasSeenAd', 'true')
    setTimeout(() => {
      this.closeAd()
    }, 3000)
  }
}

使用路由守卫控制

通过 Vue Router 的路由守卫,在进入主页面之前先展示广告页面。

const router = new VueRouter({
  routes: [
    {
      path: '/ad',
      component: Advertisement
    },
    {
      path: '/main',
      component: Main
    }
  ]
})

router.beforeEach((to, from, next) => {
  const hasSeenAd = localStorage.getItem('hasSeenAd')
  if (to.path !== '/ad' && !hasSeenAd) {
    next('/ad')
  } else {
    next()
  }
})

广告组件实现

vue实现开屏广告

广告组件需要包含关闭按钮和倒计时显示功能。

<template>
  <div class="ad-container">
    <img src="@/assets/ad.jpg" alt="广告">
    <button @click="close">跳过 {{countdown}}s</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      countdown: 5
    }
  },
  methods: {
    close() {
      this.$emit('close')
    }
  },
  mounted() {
    const timer = setInterval(() => {
      this.countdown--
      if (this.countdown <= 0) {
        clearInterval(timer)
        this.close()
      }
    }, 1000)
  }
}
</script>

CSS 样式优化

确保广告全屏显示并覆盖其他内容。

.ad-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  background: white;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.ad-container img {
  max-width: 100%;
  max-height: 80%;
}

.ad-container button {
  margin-top: 20px;
  padding: 8px 16px;
  background: #eee;
  border: none;
  border-radius: 4px;
}

注意事项

  • 广告图片建议使用本地资源或确保CDN资源快速加载
  • 移动端需要考虑不同屏幕尺寸的适配问题
  • 广告显示时间不宜过长,通常3-5秒为宜
  • 提供手动跳过功能改善用户体验
  • 考虑网络缓慢时的加载状态处理

以上方法可根据实际项目需求进行组合或调整,实现适合业务场景的开屏广告功能。

标签: 开屏广告
分享给朋友:

相关文章

js实现开屏动画

js实现开屏动画

使用CSS和JavaScript实现开屏动画 通过CSS定义动画效果,JavaScript控制动画的触发和结束时机。 <!DOCTYPE html> <html> <h…

uniapp广告弹窗

uniapp广告弹窗

uniapp广告弹窗的实现方法 在uniapp中实现广告弹窗功能,可以通过原生广告组件或自定义弹窗组件完成。以下是具体实现方案: 原生广告组件(适用于App平台) uniapp提供了<ad&g…

uniapp打包有广告

uniapp打包有广告

uniapp打包去除广告的方法 检查manifest.json配置 在项目根目录下的manifest.json文件中,确保没有启用广告模块。找到"app-plus"或"mp-weixin"等平台配置,…

uniapp官网广告

uniapp官网广告

uniapp官网广告相关说明 DCloud(数字天堂)作为uniapp的官方开发团队,其官网(https://uniapp.dcloud.net.cn)会展示部分广告内容,主要包括以下类型: DC…

vue实现广告横幅

vue实现广告横幅

Vue 实现广告横幅的方法 在 Vue 中实现广告横幅可以通过多种方式完成,以下是一些常见的方法: 使用动态组件 通过动态组件可以灵活切换不同的广告内容。定义一个广告组件,使用 v-if 或 v-…

css制作广告

css制作广告

CSS制作广告的基本方法 使用CSS可以轻松创建吸引人的广告效果,以下是几种常见的方法: 创建基础广告容器 通过div元素创建广告容器,设置固定宽度、高度和背景颜色: .ad-container…