Javascript offsetLeft详情

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style type="text/css">
        body, div {
            padding: 0px;
            margin: 0px;
        }

        #div1 {
            width: 100px;
            height: 100px;
            background: #000000;
            padding: 50px;
            border: 20px solid red;
            margin: 30px;
            float: right;
        }

        #p1 {
            width: 300px;
            height: 100px;
            background: #ababab;
            padding: 50px;
            border: 20px solid red;
            margin: 30px;
            float: right;
            clear: both;
        }

        #inner {
            width: 100px;
            height: 100px;
            background: yellow;
            float: right;
        }

        #p2 {
            width: 300px;
            height: 100px;
            background: #ababab;
            padding: 50px;
            border: 20px solid red;
            /*margin: 30px;*/
            position: absolute;
            left: 100px;
            top: 100px;
            clear: both;
        }

        #inner2 {
            width: 100px;
            height: 100px;
            background: gray;
            float: right;
        }
    </style>
</head>
<body>
    <div id="div1">

    </div>
    <div id="p1">
        <div id="inner"></div>
    </div>
    <div id="p2">
        <div id="inner2"></div>
    </div>
    <script src="../Script/jquery-2.1.1.js"></script>
    <script type="text/javascript">
        //算出偏移量,首先选参照物
        //产生偏移量 margin,float,position长长的标准留逻辑
        //parentNode和offsetParent不一定是一码事,;不过,标准流,他们的offsetParent都是body,除非他的父元素做了定位(相对或者绝对 ==relative 和absoulte)
        var oDiv = document.getElementById(‘div1‘);
        var ch = oDiv.offsetLeft;//距离盒子的边框外侧;浮动也会产生偏移量
        console.log(ch);

        var parent = oDiv.offsetParent;
        console.log(parent);
        console.log(parent.offsetLeft);
        var oInner = document.getElementById(‘inner‘);
        console.log(oInner.offsetLeft);
        console.log(oInner.offsetParent);//
        console.log(oInner.parentNode);

        var oInner2 = document.getElementById(‘inner2‘);
        console.log(oInner2.offsetLeft);
        console.log(oInner2.offsetParent);

  

    </script>
</body>
</html>

  

//计算ele这个元素距离浏览最左和上边的偏移量
        function offset(ele) {
            var l = ele.offsetLeft;
            var t = ele.offsetTop;
            //l += ele.offsetParent.offsetLeft;
            //t += ele.offsetParent.offsetTop;
            var p = ele.offsetParent;
            while (p) {
                l += p.offsetLeft;
                t += p.offsetTop;
                p = p.offsetParent;
            }
            return { top:t,left:l }
        }

  

时间: 2024-11-01 12:14:39

Javascript offsetLeft详情的相关文章

JavaScript美术馆进化史

内容选自<<JavaScript DOM 编程艺术>>第4-6章,跟着作者一起见证美术馆的进化吧. 先放效果图,然后一步步做出每个效果.每个效果都有它实用的地方,且知道过程可以更好的理解代码为什么这么写,这就是 我写这篇博文的原因. v1 v1实用的默认版本,没有实用js和css,完全是纯html.代码如下 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta con

MVC+easyui-datagrid之查看详情

在做GXPT时,我负责课表这块儿,而这块儿最大的特点是很难用到大家公共的东西,只能自己一点点去做,其中之一就是查看详情,这个功能我做了大概有两天时间,下面是我做的成果: 点击查看详情后,要弹出对应ID 的内容,如下: 下面看一下这个功能的具体实现: 先看View: <span style="font-size:14px;"><table id="dgTimeTable" class="easyui-datagrid" style

前端不为人知的冷知识

前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来.现分类整理出来分享给大家,也补充了一些平时的积累和扩展了一些内容. HTML篇 浏览器地址栏运行JavaScript代码 这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开

跨网站脚本攻击

1 前言 近年来,随着Web2.0的大潮,越来越多的人开始关注Web安全,新的Web攻击手法层出不穷,Web应用程序面临的安全形势日益严峻.跨站脚本攻击(XSS)就是常见的Web攻击技术之一,由于跨站脚本漏洞易于出现且利用成本低,所以被OWASP开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)列为当前的头号Web安全威胁.本文将从跨站脚本漏洞的产生原理.攻击手法.检测方法和防御手段四个方面出发,全面的介绍跨站脚本漏洞的方方面面

给Jquery easyui 的datagrid 每行增加操作链接

我们都知道Jquery的Easy-UI的datagrid可以添加并且自定义Toolbar,这样我们选择一行然后选择toolbar的相应按钮就可以对这行的数据进行操作.但实际项目里我们可能需要在每行后面加一些操作链接,最常见的就是比如"修改"."删除"."查看"之类.如下图: 凡事都怕但是!Easy-UI的Datagrid没有直接添加link的属性.查看Easy-UI的帮助文档,看到一个formater:格式化函数,可以对某一行进行格式化,然后通过

转跨站脚本攻击详解

1 前言近年来,随着Web2.0的大潮,越来越多的人开始关注Web安全,新的Web攻击手法层出不穷,Web应用程序面临的安全形势日益严峻.跨站脚本攻击(XSS)就是常见的Web攻击技术之一,由于跨站脚本漏洞易于出现且利用成本低,所以被OWASP开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)列为当前的头号Web安全威胁.本文将从跨站脚本漏洞的产生原理.攻击手法.检测方法和防御手段四个方面出发,全面的介绍跨站脚本漏洞的方方面面,

CKPlayer从Cookie里读取上次播放记录的一个demo

<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>获取当前播放时间的示例-ckplayer应用示例</title> <meta name="keywords" content="flv播放器,f4v,m

wpgcms---详情页面数据怎么渲染

wpgcms的详情页面的数据会被保存在 contentInfo 这么一个字段里面. 面包屑导航调用: <p>当前位置 {% for c in crumb|slice(1, crumb|length-1) %} {% if not loop.last %}> <a href="{{ c.url }}">{{ c.name }}</a> {% else %}> <span><a href="javascript:;

MongoDB 3.2变动一览

3.2测试版本总算release了!E叔带大家来一览MongoDB 3.2版本的真容. (PS:内容比较多,在此仅针对个人认为比较重要的进行讲解,markdown写的,貌似WP的markdown插件有点奇怪,格式出来和写的时候不太一样,有点丑,大家见谅.) 以下是原文链接: Development Release Notes for 3.2.0 Release Candidate storage engine change WiredTiger引擎将是默认引擎了. dbpath中有数据,在配置中