js实现左右两侧浮动广告

yizhihongxing

下面是关于“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日

相关文章

  • 详解JavaScript的while循环的使用

    详解JavaScript的while循环的使用 简介 JavaScript 中提供了循环语句来重复执行代码块,其中 while 循环是其中之一。while 循环是基于条件执行的循环,只要给定条件为真,就会执行循环体,直到给定条件为假。 语法 while 循环的语法如下: while (condition) { // 循环体语句 } 其中 condition …

    JavaScript 2023年5月27日
    00
  • 使用javascript创建快捷方式的简单实例

    下面我将为你详细讲解使用JavaScript创建快捷方式的简单实例攻略。 1. 创建快捷方式的原理 在Windows操作系统中,快捷方式是一种指向其他文件或文件夹的链接方式,可以通过桌面、开始菜单或任务栏等方式打开目标文件或文件夹。使用JavaScript创建快捷方式,就是利用Windows Script Host(WSH)提供的CreateShortcut…

    JavaScript 2023年5月27日
    00
  • asp.net中eval不能定义变量的问题的解决方法

    在asp.net中使用Eval可以将数据绑定到控件上,但是有时候我们需要在Eval中定义变量,例如将绑定的数据进行一些处理后再显示在页面上,但这样操作会发现定义的变量无法在Eval之外的区域使用,因为Eval实际上是在当前页面的上下文之外运行。在下面的攻略中,我将介绍解决这个问题的三种方法。 方法一:使用Container属性 Container属性可以访问…

    JavaScript 2023年5月28日
    00
  • JavaScript使用FileSystemObject对象写入文本文件内容的方法

    JavaScript的在浏览器端不能直接访问本地文件系统,但是可以通过ActiveXObject对象创建FileSystemObject对象来访问文件系统,可以使用FileSystemObject对象提供的方法进行文件读写操作。本文将详细讲解如何使用FileSystemObject对象写入文本文件内容的方法。 准备工作 在使用FileSystemObject…

    JavaScript 2023年5月27日
    00
  • 使用JavaScript获取电池状态的方法

    获取电池状态是Web开发中比较常见的需求之一,可以通过JavaScript获取电池状态,从而更好地帮助用户管理电池电量。 示例一:使用Battery API获取电池状态 在现代浏览器中,我们可以通过使用Battery API获取电池状态。首先,需要检测浏览器是否支持Battery API: if (‘getBattery’ in navigator) { /…

    JavaScript 2023年6月11日
    00
  • javascript Number 与 Math对象的介绍

    针对“JavaScript Number 与 Math 对象的介绍”的完整攻略,以下为详细说明: JavaScript Number 介绍 JavaScript Number 对象用于在代码中处理数字。JavaScript 中的数字可以是,十进制,二进制,八进制,十六进制和科学计数法。 语法 var x = 123; // 十进制 var x = 0xff;…

    JavaScript 2023年5月28日
    00
  • 让浏览器DOM元素最后加载的js方法

    关于让浏览器DOM元素最后加载JS方法,这主要是为了确保在运行JS之前,页面的DOM元素已经全部加载完毕,从而避免因为JS找不到需要操作的元素而产生错误。接下来我将为大家介绍两种方法。 方法一:使用window.onload window.onload是指在当前页面中所有的元素(图片、音频、视频等多媒体元素)加载完毕后,再去执行window.onload事件…

    JavaScript 2023年6月10日
    00
  • JavaScript 中的日期和时间及表示标准介绍

    JavaScript 中的日期和时间及表示标准介绍 JavaScript 提供了几个用于操作和显示日期和时间的内置对象。这些对象可以帮助我们在网页中创建动态的交互效果,比如根据日期显示不同的内容,或者计算出两个日期之间的差值等。 日期和时间的内置对象 JavaScript 中用于处理日期和时间的内置对象有 Date、Intl.DateTimeFormat 和…

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