js实现左右两侧浮动广告

下面是关于“js实现左右两侧浮动广告”的完整攻略。

实现思路

我们首先需要确定广告层的定位方式,一般采用 position: fixed 来实现固定的效果。然后利用 JS 计算浏览器窗口的宽度,以及广告层的宽度,计算出广告层到浏览器窗口两侧的距离,以此确定广告层的位置。接着,我们需要监听浏览器窗口的 scrollresize 事件,根据滚动的位置和窗口的大小来更新广告层的位置。

示例代码

示例一

下面的代码演示了如何实现一个左侧浮动广告。假设广告的宽度为 200px,这里我们要设置其距离页面左侧为 20px。当用户向下滚动页面时,广告会实时固定在左侧并跟随用户的滚动,当广告超过顶部导航栏时,其距离顶部为 100px。你可以将代码复制到你的 HTML 文件中,运行起来查看效果。

<!DOCTYPE html>
<html>
  <head>
    <title>左侧浮动广告</title>
    <style>
      #left-ad {
        position: fixed;
        left: 20px;
        top: 100px;
        width: 200px;
        background-color: yellow;
        padding: 10px;
      }
      .main-content {
        margin-left: 240px;
        padding: 20px;
      }
    </style>
  </head>
  <body>
    <div id="left-ad">这是一个左侧浮动广告</div>
    <div class="main-content">
      <h1>网站主体内容</h1>
      <p>这里是主体内容的介绍。</p>
      <!-- 更多主体内容 -->
    </div>
    <script>
      // 计算广告距离浏览器左侧的距离
      var ad = document.getElementById('left-ad');
      var adWidth = ad.offsetWidth; // 广告层的宽度
      var leftDistance = 20; // 广告离浏览器左侧的距离
      var leftPosition = leftDistance - adWidth; // 实际距离浏览器左侧的距离

      // 更新广告层的位置
      function updateAdPosition() {
        var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
        var topDistance = 100; // 广告层距离顶部的距离

        // 计算实际距离浏览器两侧的距离
        var left = (window.innerWidth / 2) - (adWidth / 2) + leftPosition;
        var top = scrollTop + topDistance;

        // 更新广告层的位置
        ad.style.left = left + 'px';
        ad.style.top = top + 'px';
      }

      // 监听浏览器滚动和窗口大小改变事件
      window.addEventListener('scroll', updateAdPosition);
      window.addEventListener('resize', updateAdPosition);

      // 初始化广告层位置
      updateAdPosition();
    </script>
  </body>
</html>

示例二

下面的代码演示了如何实现一个右侧浮动广告。假设广告的宽度也为 200px,这里我们要设置其距离页面右侧为 20px。当用户向下滚动页面时,广告会实时固定在右侧并跟随用户的滚动,当广告超过底部导航栏时,其距离底部为 100px。

<!DOCTYPE html>
<html>
  <head>
    <title>右侧浮动广告</title>
    <style>
      #right-ad {
        position: fixed;
        right: 20px;
        bottom: 100px;
        width: 200px;
        background-color: yellow;
        padding: 10px;
      }
      .main-content {
        margin-right: 240px;
        padding: 20px;
      }
    </style>
  </head>
  <body>
    <div id="right-ad">这是一个右侧浮动广告</div>
    <div class="main-content">
      <h1>网站主体内容</h1>
      <p>这里是主体内容的介绍。</p>
      <!-- 更多主体内容 -->
    </div>
    <script>
      // 计算广告距离浏览器右侧的距离
      var ad = document.getElementById('right-ad');
      var adWidth = ad.offsetWidth; // 广告层的宽度
      var rightDistance = 20; // 广告离浏览器右侧的距离
      var rightPosition = rightDistance - adWidth; // 实际距离浏览器右侧的距离

      // 更新广告层的位置
      function updateAdPosition() {
        var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
        var topDistance = 100; // 广告层距离底部的距离

        // 计算实际距离浏览器两侧的距离
        var right = (window.innerWidth / 2) - (adWidth / 2) + rightPosition;
        var bottom = scrollTop + window.innerHeight - topDistance - ad.offsetHeight;

        // 更新广告层的位置
        ad.style.right = right + 'px';
        ad.style.bottom = bottom + 'px';
      }

      // 监听浏览器滚动和窗口大小改变事件
      window.addEventListener('scroll', updateAdPosition);
      window.addEventListener('resize', updateAdPosition);

      // 初始化广告层位置
      updateAdPosition();
    </script>
  </body>
</html>

以上就是实现左右两侧浮动广告的完整攻略,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现左右两侧浮动广告 - Python技术站

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

相关文章

  • 页面中实现setInterval和setTimeout效果示例详解

    让我为你讲解一下“页面中实现setInterval和setTimeout效果示例详解”的完整攻略吧! 一、setInterval与setTimeout的基本使用 1. setInterval的基本使用 setInterval可以设置周期性地执行指定的代码。其语法如下: setInterval(func, delay, [arg1, arg2, …]); …

    JavaScript 2023年6月10日
    00
  • 学习javascript面向对象 理解javascript对象

    学习 JavaScript 面向对象编程(OOP)是成为一名 JavaScript 开发者的重要一步。理解 JavaScript 对象是理解 OOP 的基础。以下是学习 JavaScript 面向对象编程并理解 JavaScript 对象的完整攻略: 1. 了解面向对象编程 面向对象编程是将程序分解成一系列相互关联的对象。对象具有属性和方法,可以相互通信和交…

    JavaScript 2023年5月18日
    00
  • vscode 一键规范代码格式的实现

    下面我将为大家讲解“vscode 一键规范代码格式的实现”的完整攻略。 1. 安装插件 要实现一键规范代码格式,需要安装 vscode 的插件 Prettier – Code formatter,可以通过在 vscode 中按下快捷键 Ctrl + Shift + X 打开插件商店,在搜索框中输入 Prettier,然后点击安装即可。 2. 配置插件 在 v…

    JavaScript 2023年6月10日
    00
  • 在JavaScript里嵌入大量字符串常量的实现方法

    在JavaScript中,我们通常会使用字符串常量来表示一些静态的文本信息,例如错误提示、确认提示等等。当我们需要处理大量的字符串常量时,如果直接在JavaScript文件中编写这些字符串,不仅容易造成代码混乱,而且不易维护。为了解决这个问题,我们可以将这些字符串常量存储在单独的文件中,再通过一些手段将其引入到JavaScript文件中,以下是实现方法的详细…

    JavaScript 2023年5月28日
    00
  • 基于Next.js实现在线Excel的详细代码

    关于“基于Next.js实现在线Excel的详细代码”的攻略,以下是我可以提供的详细过程: 第一步:安装Next.js 为了实现在线Excel,我们需要安装依赖包Next.js。可以通过npm命令进行安装: npm install next react react-dom 第二步:创建页面 创建一个名为pages/index.js的文件,这将是我们应用程序的…

    JavaScript 2023年6月11日
    00
  • JavaScript尾递归的实现及应用场景

    JavaScript尾递归的实现及应用场景 什么是尾递归 递归函数是在函数内部调用自身的函数,而尾递归则指在函数结束时递归调用自身函数,此时函数不会有任何剩余操作。尾递归函数的实现方式可以极大地减少函数在内存中的占用,避免了栈溢出问题,是函数编写中的高级技巧。 尾递归的实现 尾递归函数不是按照标准递归方式进行运算,而是以‘一步计算出最终结果’的方式进行,每次…

    JavaScript 2023年5月28日
    00
  • Android中WebView的基本配置与填坑记录大全

    Android中WebView的基本配置与填坑记录大全 本文将详细介绍Android中WebView的基本配置和一些坑点记录。WebView是Android中经常用到的控件,它能够方便地显示Web页面或者本地HTML页面,同时也支持JavaScript交互。 1. 添加依赖 在build.gradle的dependencies中添加如下依赖: impleme…

    JavaScript 2023年6月11日
    00
  • JavaScript常用事件介绍

    下面我将为您详细介绍“JavaScript常用事件”方面的攻略。在JavaScript中,我们可以使用各种事件来相应网页的状态改变和用户的互动。通过事件,我们可以触发一些特定的JavaScript函数,实现对用户行为的响应。 事件介绍 事件是用户在操作网页时触发的一些动作,包括鼠标点击、键盘输入、页面滚动、窗口大小调整等。常见的事件类型包括: 鼠标事件:cl…

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