JavaScript实现广告弹窗效果

yizhihongxing

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日

相关文章

  • JS加密插件CryptoJS实现的Base64加密示例

    下面是“JS加密插件CryptoJS实现的Base64加密示例”的完整攻略,包含两个示例: 1. 什么是CryptoJS? CryptoJS是一个纯JavaScript实现的加密库,提供了很多常见的加密算法和加密模式,例如AES、DES、TripleDES、MD5、SHA-1、SHA-256等。它支持的加密方式很全面,使用简便,而且在前端中使用也非常方便。 …

    JavaScript 2023年5月19日
    00
  • JavaScript仿百度图片浏览效果

    介绍JavaScript仿百度图片浏览效果所需要遵循的完整攻略: 步骤一:网页结构设计 要实现JavaScript仿百度图片浏览效果,需要先设计网页的结构。具体来说,需要将每个图片都包装在一个链接标签内部,然后这些链接标签再放置在一个父级div标签中。这样,每次点击一个链接标签,就会打开一个图片的浏览界面。 下面是一个示例代码: <div class=…

    JavaScript 2023年6月11日
    00
  • JavaScript中的函数申明、函数表达式、箭头函数

    在 JavaScript 中,函数定义有三种方式:函数声明、函数表达式和箭头函数。 函数声明 函数声明是定义一个函数的常见方式,语法如下: function add(x, y) { return x + y; } 其中 add 是函数名,x 和 y 是参数,return 关键字用于返回计算结果。 函数声明有一个重要的特点,就是函数可以在声明之前被调用(也就是…

    JavaScript 2023年5月27日
    00
  • javascript中的对象创建 实例附注释

    JavaScript中的对象创建分为三种方式:字面量形式、构造函数形式和Object.create()形式,下面分别进行详细讲解。 字面量形式 字面量形式创建对象最常用的方式,它基于JavaScript中对象是一组无序的键值对的集合。下面是一个通过字面量形式创建对象的示例: // 创建一个空对象 var person = {}; // 给对象添加属性和方法 …

    JavaScript 2023年5月27日
    00
  • elementui源码学习仿写el-collapse示例

    elementui源码学习是提高前端技能的重要途径之一,而仿写el-collapse示例则是学习elementui源码的一种方式。下面是详细的攻略,在实践中应当充分理解和熟悉每一个步骤。 准备工作 首先要准备好编程环境,推荐使用VS Code或WebStorm等开发工具。下载elementui源码,可以从GitHub上下载或者使用npm安装。首先安装elem…

    JavaScript 2023年6月10日
    00
  • javascript中删除指定数组中指定的元素的代码

    当需要从JavaScript中的数组中删除特定的元素时,可以使用以下几种方法: 1.使用splice()方法 splice()方法可用于更改数组的内容,通过指定要更改的内容和其更改方式进行更改。在这种情况下,我们可以将其用于从数组中删除特定元素。 使用方式如下: array.splice(index, howMany[, element1[, …[, e…

    JavaScript 2023年6月11日
    00
  • jQuery实现批量判断表单中文本框非空的方法(2种方法)

    下面是详细的攻略: 一、背景说明 在Web开发中,经常需要对表单信息进行数据验证,比如判断某些必填项是否为空。本文将介绍两种使用jQuery实现批量判断表单中文本框非空的方法。 二、方法一 方法一利用each方法遍历表单中的文本框,然后判断每个文本框是否为空。示例代码如下: var flag = true; // 表单验证flag $(":text…

    JavaScript 2023年6月10日
    00
  • js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前

    下面是“js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前”的完整攻略: 步骤一:获取时间戳 在开始计算与当前时间相差多久之前,我们需要获取时间戳。时间戳是指自 1970 年 1 月 1 日 00:00:00 UTC 起至现在的总秒数。 我们可以通过 JavaScript 的 Date 对象获取当前的日期时间,然后将其转换为时间戳。示例代码如下: …

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