通过JavaScript使Div居中并随网页大小改变而改变

要实现通过JavaScript使Div居中并随网页大小改变而改变,可以遵循以下步骤:

  1. 给该Div设置样式,使其垂直和水平居中,并将左右和上下的边距都设置为auto。例如:
.div-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
  1. 使用JavaScript获取该Div元素,并计算出居中需要的偏移量。例如:
var div = document.getElementById('div-center');
var divWidth = div.offsetWidth;
var divHeight = div.offsetHeight;
var screenWidth = window.innerWidth;
var screenHeight = window.innerHeight;
var leftOffset = (screenWidth - divWidth) / 2;
var topOffset = (screenHeight - divHeight) / 2;
  1. 将计算出来的偏移量动态赋值给该Div的样式中。例如:
div.style.left = leftOffset + 'px';
div.style.top = topOffset + 'px';
  1. 使用window对象的resize事件,监听浏览器窗口的变化,并重新计算并设置居中偏移量。例如:
window.addEventListener('resize', function() {
  var divWidth = div.offsetWidth;
  var divHeight = div.offsetHeight;
  var screenWidth = window.innerWidth;
  var screenHeight = window.innerHeight;
  var leftOffset = (screenWidth - divWidth) / 2;
  var topOffset = (screenHeight - divHeight) / 2;
  div.style.left = leftOffset + 'px';
  div.style.top = topOffset + 'px';
});

示例1:一个固定大小的Div元素居中

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>居中的Div</title>
  <style>
    .div-center {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 400px;
      height: 300px;
      background-color: #eee;
      transform: translate(-50%, -50%);
    }
  </style>
</head>
<body>
  <div id="div-center" class="div-center">
    <h1>这是一个居中的Div</h1>
    <p>你可以通过调整窗口大小来测试居中是否正常</p>
  </div>

  <script>
    var div = document.getElementById('div-center');
    var divWidth = div.offsetWidth;
    var divHeight = div.offsetHeight;
    var screenWidth = window.innerWidth;
    var screenHeight = window.innerHeight;
    var leftOffset = (screenWidth - divWidth) / 2;
    var topOffset = (screenHeight - divHeight) / 2;
    div.style.left = leftOffset + 'px';
    div.style.top = topOffset + 'px';

    window.addEventListener('resize', function() {
      var divWidth = div.offsetWidth;
      var divHeight = div.offsetHeight;
      var screenWidth = window.innerWidth;
      var screenHeight = window.innerHeight;
      var leftOffset = (screenWidth - divWidth) / 2;
      var topOffset = (screenHeight - divHeight) / 2;
      div.style.left = leftOffset + 'px';
      div.style.top = topOffset + 'px';
    });
  </script>
</body>
</html>

示例2:一个自适应大小的Div元素居中

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>自适应大小的居中Div</title>
  <style>
    .div-center {
      position: absolute;
      top: 50%;
      left: 50%;
      max-width: 90%;
      max-height: 90%;
      background-color: #eee;
      transform: translate(-50%, -50%);
    }
  </style>
</head>
<body>
  <div id="div-center" class="div-center">
    <h1>这是一个自适应大小的居中Div</h1>
    <p>你可以通过调整窗口大小来测试居中是否正常</p>
  </div>

  <script>
    var div = document.getElementById('div-center');

    function centerDiv() {
      var divWidth = div.offsetWidth;
      var divHeight = div.offsetHeight;
      var screenWidth = window.innerWidth;
      var screenHeight = window.innerHeight;
      var leftOffset = (screenWidth - divWidth) / 2;
      var topOffset = (screenHeight - divHeight) / 2;
      div.style.left = leftOffset + 'px';
      div.style.top = topOffset + 'px';
    }

    centerDiv();

    window.addEventListener('resize', centerDiv);
  </script>
</body>
</html>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过JavaScript使Div居中并随网页大小改变而改变 - Python技术站

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

相关文章

  • Webpack 中 css import 使用 alias 相对路径的方法

    在使用 Webpack 打包项目时,为了更方便地引用 CSS 样式,我们通常会使用 alias 别名来定义 CSS 文件存放的路径。但是,在使用 alias 别名时,如何在 CSS 中正确引用文件呢?下面来详细介绍一下这个过程。 1. 配置 Webpack 首先,在 Webpack 配置文件中,需要定义别名 alias,以便正确引用 CSS 文件。可以在 w…

    css 2023年6月9日
    00
  • JavaScript类型转换方法大全

    JavaScript类型转换是指将一个数据类型的值转换成另一种数据类型的值。在JavaScript中,类型转换是非常重要的,因为它能够帮助我们将不同的数据类型进行比较、运算和合并。 JavaScript中主要的类型转换有以下几种: 1. 字符串转换 可以通过toString()方法将一个非字符串类型的值转换为字符串类型。 let num = 42; let …

    Web开发基础 2023年3月30日
    00
  • swiper+echarts实现多个仪表盘左右滚动效果

    下面详细介绍如何使用swiper和echarts实现多个仪表盘左右滚动效果的攻略。 一、安装swiper和echarts 在项目根目录下使用npm命令安装swiper和echarts: npm install swiper echarts 此处使用的是官方提供的npm安装方式,也可以使用其他方式如CDN等。 二、创建swiper容器和echarts容器 在H…

    css 2023年6月10日
    00
  • CSS设置列表样式和创建导航菜单实现代码

    下面是“CSS设置列表样式和创建导航菜单实现代码”的完整攻略。 CSS设置列表样式 当我们需要在页面中使用列表时,我们可以通过CSS来设置不同样式的列表,以提高页面的可读性和美观性。下面是两个示例: 1. 设置无序列表(ul)的样式 ul { list-style: none; /* 去除默认样式 */ padding: 0; margin: 0; } ul…

    css 2023年6月10日
    00
  • 浅谈css网页的几种布局

    浅谈CSS网页的几种布局 在进行网页布局时,CSS提供了多种方式,下面将详细讲解 css 网页的几种布局以及两个示例。 流式布局 流式布局是一种基于百分比的布局方式,会根据浏览器窗口的大小来调整页面的尺寸。 关键属性:- width: 百分比宽度 优点:- 兼容性好- 页面可以随着窗口大小调整自适应- 对SEO友好 缺点:- 页面元素不能做到完全固定- 当窗…

    css 2023年6月9日
    00
  • 基于vue实现一个禅道主页拖拽效果

    让我详细讲解”基于Vue实现一个禅道主页拖拽效果”的攻略。 一、需求分析 在进行编码之前,首先要进行需求分析,明确我们要实现的功能以及需要使用的技术和工具,以下是对此项目的需求分析: 实现将禅道主页的各个模块进行拖拽排序功能 使用Vue.js作为项目的主要技术栈 使用HTML5 Drag and Drop API实现拖拽功能 使用Lodash库来辅助数据操作…

    css 2023年6月9日
    00
  • 原生JS封装vue Tab切换效果

    让我详细讲解一下“原生JS封装vue Tab切换效果”的攻略。 步骤一:HTML结构 首先,我们需要在HTML中定义tab的页面结构。通常,Tab菜单会使用<ul>和<li>标签,而每个Tab页的内容则使用<div>标签。示例如下: <div class="tab"> <ul clas…

    css 2023年6月10日
    00
  • jquery判断元素是否隐藏的多种方法

    当我们使用jQuery进行页面开发时,有时需要判断页面元素是否隐藏。本文将介绍三种方法来实现这个目标。 方法一:使用.css(“display”)方法 我们可以使用.css(“display”)方法来获取元素的显示状态。如果元素已隐藏,.css(“display”)将返回“none”,否则它将返回元素的显示状态。 示例1:隐藏一个元素并检查其状态 <!…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部