jQuery之offset和position


DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>12_offset和positiontitle>
head>
<style type="text/css">
  * {
    margin: 0px;
  }

  .div1 {
    position: absolute;
    width: 200px;
    height: 200px;
    top: 20px;
    left: 10px;
    background: blue;
  }

  .div2 {
    position: absolute;
    width: 100px;
    height: 100px;
    top: 50px;
    background: red;
  }

  .div3 {
    position: absolute;
    top: 250px;
  }
style>
<body style="height: 2000px;">

<div class="div1">
  <div class="div2">测试offsetdiv>
div>

<div class='div3'>
  <button id="btn1">读取offset和positionbutton>
  <button id="btn2">设置offsetbutton>
div>


<script src="js/jquery-1.10.1.js" type="text/javascript">script>
<script type="text/javascript">
  /*
  需求:
  1. 点击 btn1
    打印 div1 相对于页面左上角的位置
    打印 div2 相对于页面左上角的位置
    打印 div1 相对于父元素左上角的位置
    打印 div2 相对于父元素左上角的位置
  2. 点击 btn2
    设置 div2 相对于页面的左上角的位置
   */
  $('#btn1').click(function () {
//    打印 div1 相对于页面左上角的位置
    var offset = $('.div1').offset()
    console.log(offset.left, offset.top) // 10 20
//    打印 div2 相对于页面左上角的位置
    offset = $('.div2').offset()
    console.log(offset.left, offset.top) // 10 70
//    打印 div1 相对于父元素左上角的位置,div2的父元素就是div1
    var position = $('.div1').position()
    console.log(position.left, position.top) // 10 20
//    打印 div2 相对于父元素左上角的位置
    position = $('.div2').position()
    console.log(position.left, position.top) // 0 50
  })

//设置div2相对于整个页面左上角的位置,
  $('#btn2').click(function () {
    $('.div2').offset({
      left: 50,
      top: 100
    })
  })
script>
body>
html>

界面:

 点击设置offset按钮之后: