JavaScript实现广告弹窗效果

JavaScript实现广告弹窗效果的攻略包含以下几个步骤:

1. 创建HTML结构

我们需要为广告弹窗准备一个HTML结构,可以在页面中创建一个div元素,然后在其中嵌套一个img标签和一个关闭按钮元素。其中,img标签的src属性设置为我们需要展示的广告图片地址。例如:

<div id="ad">
  <img src="https://example.com/ad.jpg" alt="广告图片">
  <button id="close-btn">关闭</button>
</div>

2. 样式定义

接下来,我们需要为广告弹窗定义样式。对于广告容器,我们需要设置其宽高、背景颜色、边框样式等样式;对于广告图片和关闭按钮,我们需要设置其位置、大小、对齐等样式。例如:

#ad {
  position: fixed;
  top: 50%;
  left: 50%;
  margin-top: -150px;
  margin-left: -250px;
  width: 500px;
  height: 300px;
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  z-index: 9999;
}

#ad img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  max-height: 100%;
}

#ad #close-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  background-color: transparent;
  border: none;
  font-size: 16px;
  cursor: pointer;
}

3. JS代码实现

接下来,我们需要编写JavaScript代码实现广告弹窗的弹出和关闭功能。当页面加载完成后,我们需要为关闭按钮添加点击事件,点击时隐藏广告弹窗;同时,我们可以设置一个计数器,在页面加载完成后一定时间后弹出广告弹窗。例如:

window.addEventListener('load', function() {
  var ad = document.getElementById('ad');
  var closeBtn = document.getElementById('close-btn');

  // 添加关闭按钮点击事件
  closeBtn.addEventListener('click', function() {
    ad.style.display = 'none';
  });

  // 定时弹出广告窗口
  setTimeout(function() {
    ad.style.display = 'block';
  }, 5000); // 5秒后弹出
});

示例说明

示例1:定时弹窗

参考以上步骤,我们可以实现一个定时弹出广告窗口的效果。当页面加载完成后,5秒钟后弹出广告窗口。实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>广告弹窗示例1</title>
  <style>
    #ad {
      position: fixed;
      top: 50%;
      left: 50%;
      margin-top: -150px;
      margin-left: -250px;
      width: 500px;
      height: 300px;
      background-color: #fff;
      border: 1px solid #ccc;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
      z-index: 9999;
    }

    #ad img {
      display: block;
      margin: 0 auto;
      max-width: 100%;
      max-height: 100%;
    }

    #ad #close-btn {
      position: absolute;
      top: 10px;
      right: 10px;
      background-color: transparent;
      border: none;
      font-size: 16px;
      cursor: pointer;
    }
  </style>
</head>
<body>
  <div id="ad">
    <img src="https://picsum.photos/id/1020/500/300" alt="广告图片">
    <button id="close-btn">关闭</button>
  </div>
  <script>
    window.addEventListener('load', function() {
      var ad = document.getElementById('ad');
      var closeBtn = document.getElementById('close-btn');

      // 添加关闭按钮点击事件
      closeBtn.addEventListener('click', function() {
        ad.style.display = 'none';
      });

      // 定时弹出广告窗口
      setTimeout(function() {
        ad.style.display = 'block';
      }, 5000); // 5秒后弹出
    });
  </script>
</body>
</html>

示例2:滑动弹窗

除了定时弹窗之外,我们还可以实现滑动弹窗的效果。具体实现方式是:当用户浏览页面超过一定高度后,弹出广告窗口,并从屏幕顶部滑动进入,同时添加动画效果。实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>广告弹窗示例2</title>
  <style>
    #ad {
      position: fixed;
      top: -400px; /* 将广告区域的top设置为负值,使其在屏幕外 */
      left: 50%;
      margin-left: -250px;
      width: 500px;
      height: 300px;
      background-color: #fff;
      border: 1px solid #ccc;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
      z-index: 9999;
      overflow: hidden; /* 隐藏广告内容 */
    }

    #ad img {
      display: block;
      margin: 0 auto;
      max-width: 100%;
      max-height: 100%;
    }

    #ad #close-btn {
      position: absolute;
      top: 10px;
      right: 10px;
      background-color: transparent;
      border: none;
      font-size: 16px;
      cursor: pointer;
    }

    /* 添加动画效果 */
    @keyframes ad-slide-in {
      0% { transform: translateY(-400px); }
      100% { transform: translateY(0); }
    }
  </style>
</head>
<body>
  <!-- 页面内容 -->
  <div style="height: 2000px;"></div>

  <!-- 广告弹窗 -->
  <div id="ad">
    <img src="https://picsum.photos/id/1020/500/300" alt="广告图片">
    <button id="close-btn">关闭</button>
  </div>

  <script>
    window.addEventListener('scroll', function() {
      var ad = document.getElementById('ad');
      var closeBtn = document.getElementById('close-btn');

      // 当滑动高度超过一定值后,弹出广告窗口
      if (window.pageYOffset > 500) {
        ad.style.display = 'block';
        setTimeout(function() {
          ad.style.overflow = 'auto'; // 显示广告内容
          ad.style.animation = 'ad-slide-in 1s forwards'; // 添加动画效果
        }, 100);
      }

      // 添加关闭按钮点击事件
      closeBtn.addEventListener('click', function() {
        ad.style.display = 'none';
      });
    });
  </script>
</body>
</html>

在这个示例中,我们通过监听页面滚动事件,当页面滚动到一定高度时弹出广告窗口,并通过CSS3动画实现了广告的滑动效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现广告弹窗效果 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • javascript实现缓动动画效果

    下面是详细讲解“JavaScript实现缓动动画效果”的攻略。 什么是缓动动画? 缓动动画是在动画开始和结束的时候逐渐加速或减速,它不像匀速动画那样是一直保持同样的速度,而是可控的速度随时间而变化。 缓动动画的实现原理 缓动动画的实现原理是利用数学函数计算每一帧动画的时间间隔和位置坐标,并根据计算结果以定时器的方式实现动画效果。 常用的缓动函数有很多,比如线…

    JavaScript 2023年6月10日
    00
  • js中递归函数的使用介绍

    JS中递归函数的使用介绍 什么是递归函数? 递归函数是指在函数定义中调用自身的函数。通过使用递归函数,可以将一个大问题逐渐分解为若干个小问题,从而更容易解决。递归函数是一个强有力的工具,它在许多编程语言中广泛使用。 如何使用递归函数? 最简单的递归函数定义只是一个条件判断和一个递归调用。如下所示: function recursiveFunc(param) …

    JavaScript 2023年5月27日
    00
  • javascript中实现兼容JAVA的hashCode算法代码分享

    下面是“javascript中实现兼容JAVA的hashCode算法代码分享”的完整攻略: 什么是hashCode算法 hashCode算法是Java语言中的一种哈希算法,用于将数据的键转换为哈希值,从而改善散列表(哈希表)的性能。hashCode算法的基本思想是,将任意长度的输入(键)通过散列算法,变成固定长度的输出散列值(哈希值)。 在Java中,Obj…

    JavaScript 2023年5月28日
    00
  • JavaScript中DOM详解

    JavaScript中DOM详解 DOM(Document Object Model)是指用于处理HTML或XML文档的编程接口。我们可以使用JavaScript来操纵和更新HTML文档,这就需要用到DOM。本篇攻略将介绍如何用JavaScript来操作DOM。 DOM是什么? DOM是HTML文档的对象表示。浏览器将HTML文档解析成对象树,由此可以让我们…

    JavaScript 2023年6月10日
    00
  • JavaScript基于replace+正则实现ES6的字符串模版功能

    如果想要实现ES6中提供的字符串模版功能,不使用ES6的新特性,也能够用JavaScript实现。具体步骤是使用replace函数以及正则表达式,将需要替换的变量插入到字符串模版中。 以下是一份完整的攻略,帮助您实现这个功能: 步骤 1:定义写入字符串模板的变量 定义所需的字符串模板和变量。例如,在下面的示例中,定义了模板字符串 Hello, $ {name…

    JavaScript 2023年5月28日
    00
  • Javascript继承机制的设计思想分享

    Javascript继承机制的设计思想分享 概述 Javascript是一门基于原型实现的语言,继承机制是Javascript的核心概念之一。本文将讲述Javascript继承机制的设计思想和实现方式,为读者提供全面的知识体系。 原型链 Javascript的继承机制是基于原型链实现的,原型链是一种基于对象的链式结构。每个Javascript对象都有一个指向…

    JavaScript 2023年6月11日
    00
  • 简单的js表单验证函数

    下面是“简单的js表单验证函数”完整攻略的具体步骤: 1. 确定需求 在编写表单验证函数之前,需要明确需要验证的表单项和验证规则,以确定函数的参数和返回值。例如: 验证规则:姓名为必填项,只能输入中文字符 函数参数:需要验证的表单项的id或class名 函数返回值:验证通过返回true,验证失败返回false 2. 编写函数 根据需求编写表单验证函数,函数名…

    JavaScript 2023年6月10日
    00
  • JavaScript 函数式编程实践(来自IBM)第1/3页

    下面我将为你详细讲解“JavaScript 函数式编程实践(来自IBM)第1/3页”的完整攻略。 该攻略分为三个部分,本回答只讲解第1页。第1页主要介绍了JavaScript函数式编程的基础知识,包括纯函数、不可变性、高阶函数、柯里化和函数组合等,它们是函数式编程的重要概念。 下面,我将对这些概念逐一进行详细讲解。 纯函数 纯函数是指输入相同,输出也一定相同…

    JavaScript 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部