博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
offsetleft
阅读量:6895 次
发布时间:2019-06-27

本文共 2611 字,大约阅读时间需要 8 分钟。

hot3.png

100443_kn6A_1403247.jpg

top,pixelTop,posTOp这几个类比就行了.

LEFT:   为从左向右移的位置,即挂件距离屏幕左边缘的距离; 
clientLeft   返回对象的offsetLeft属性值和到当前窗口左边的真实值之间的距离 
offsetLeft   返回对象相对于父级对象的布局或坐标的left值,就是以父级对象左上角为坐标原点,向右和向下为X、Y轴正方向的x坐标 
pixelLeft   设置或返回对象相对于窗口左边的位置
scrollWidth 是对象的实际内容的宽,不包边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际宽度)。
clientWidth 是对象可见的宽度,不包滚动条等边线,会随窗口的显示大小改变。
 offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变。
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

offsetwidth:是元素相对父元素的偏移宽度。等于border+padding+width

clientwidth:是元素的可见宽度。等于padding+width
scrollwidth:是元素的宽度且包括滚动部分。
offsetLeft:Html元素相对于自己的offsetParent元素的位置 
scrollLeft:返回和设置当前横向滚动务的坐标值

搞清楚这几个控件所指的我们就可以实现简单的拖曳效果

<!docType html>

<html>

<head>

    <style type="text/css">

        #drag {border:1px solid blue;width:100px;height:100px;position:absolute;}

    </style>

</head>

<body>

<input id="x"  />

<input id="y"  />

<div id="drag"></div>

<script>

var drag = document.getElementById('drag');

var inputX = document.getElementById('x');

var inputY = document.getElementById('y');

if(document.attachEvent){

    drag.attachEvent('onmousedown',dragHandle);   //兼容ie

}else{

    drag.addEventListener('mousedown', dragHandle,false);

}

function dragHandle(event){

    var event = event||window.event;

    var startX = drag.offsetLeft;

    var startY = drag.offsetTop;

    var mouseX = event.clientX;

    var mouseY = event.clientY;

    var deltaX = mouseX - startX;

    var deltaY = mouseY - startY;

    console.log(deltaX)

   if(document.attachEvent){   

        drag.attachEvent('onmousemove',moveHandle);

        drag.attachEvent('onmouseup',upHandle);

        drag.attachEvent('onlosecapture',upHandle);

        drag.setCapture();

    }else{     

        document.addEventListener('mousemove',moveHandle,true);

        document.addEventListener('mouseup',upHandle,true);

    }

    function moveHandle(event){

        var event = event||window.event;//前面 drag.style.left的样式设得绝对定位

        drag.style.left = (event.clientX - deltaX)+"px";//得到div的左上角的X坐标

        drag.style.top = (event.clientY - deltaY)+"px";

        inputX.value=drag.style.left;

        inputY.value=drag.style.top;

    }

    function upHandle(){

        if(document.attachEvent){          //兼容ie

            drag.detachEvent('onmousemove',moveHandle);

            drag.detachEvent('onmouseup',upHandle);

            drag.detachEvent('onlosecapture',upHandle);

            drag.releaseCapture();

        }else{

            document.removeEventListener('mousemove',moveHandle,true);

            document.removeEventListener('mouseup',upHandle,true);

        }

    }

}

//--</script>

</body>

</html>  

转载于:https://my.oschina.net/u/1403247/blog/270877

你可能感兴趣的文章
添加和删除虚拟用户
查看>>
shell 变量
查看>>
IDEA远程仓库版本回滚
查看>>
linux 如何进入grub模式
查看>>
JAVA操作Trip数据库2
查看>>
Powershell技巧 判断一个AD账户是否存在
查看>>
LINQ系列:Linq to Object限制操作符
查看>>
tnginx调用lua模块编译安装
查看>>
虚拟主机的配置
查看>>
我的友情链接
查看>>
Hadoop的MapReduce执行流程图
查看>>
[转]Underscore.js 入门-常用方法介绍
查看>>
(八)saltstack项目实战_安装mysql
查看>>
案例:努力却不爽的员工与无辜的主管
查看>>
我的友情链接
查看>>
C++投票系统说明文档
查看>>
php 5.6.6 源码安装配置
查看>>
selenium grid解决多台电脑进行并发执行测试脚本
查看>>
UltraISO 对光盘镜像常用操作方法图解
查看>>
电脑本地OpenCart1.5.6安装教程
查看>>