如何使用 jQuery 在屏幕上居中 <div>

有一种方法可以仅使用 jQuery 将 <div> 元素居中到页面中间。

下面的代码片段显示了创建一个函数的方法,我们可以将其添加到脚本中以将 <div> 元素居中:

<!DOCTYPE html>
<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.0/jquery.min.js"></script>
    <style>
      div.box {
        width: 400px;
        height: 300px;
        border: 2px solid green;
        position: relative;
        top: 10px;
        left: 10px;
      }
      div.myclass {
        width: 50px;
        height: 50px;
        color: white;
        background: green;
        border-radius: 4px;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center;
      }
    </style>
  </head>
  <body>
    <div class="box">
      <div class="myclass">Box</div>
    </div>
    <script>
      $(document).ready(function() {
          jQuery.fn.center = function(parent) {
            if(parent) {
              parent = this.parent();
            } else {
              parent = window;
            }
            this.css({
              "position": "absolute",
              "top": ((($(parent).height() - this.outerHeight())/2) + $(parent).scrollTop() + "px"),
              "left": ((($(parent).width() - this.outerWidth())/2) + $(parent).scrollLeft() + "px")
            });
            return this;
          }
          $("div.myclass:nth-child(1)").center(true);
        });
    </script>
  </body>
</html>

要使用上述函数,我们应该选择 <div> 元素居中并将其传递给新函数:

$(element).center();

你应该使用 this.outerHeight() 和 this.outerWidth();否则,如果对象有填充或者边框,它最终会偏离中心。

如果 CSS 无法正常工作,jQuery 解决方案可以成为将 <div> 元素居中的完美解决方案。

.outerHeight() 和 .outerWidth() 方法

.outerHeight() 和 .outerWidth() 方法获取匹配元素组中第一个元素的高度和宽度(包括内边距、边框和边距)或者分别设置每个匹配元素的外部高度和宽度。

如果在空元素组上调用两个方法,它们将返回未定义。

日期:2020-06-02 22:16:08 来源:oir作者:oir