`
xplq
  • 浏览: 88861 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

层的移动入门一

阅读更多

层的拖动思路为:

1、计算鼠标的偏移量:鼠标的位置-对象的位置

2、计算最后的位置:移动后鼠标位置+偏移量

ok,开始。

获取鼠标的位置:

//获取鼠标的坐标
function mouseCoords(ev)
{

	if (ev.pageX || ev.pageY) 
	{
		return {
			x :ev.pageX,
			y :ev.pageY
		};
	}
	return {
		x :ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y :ev.clientY + document.body.scrollTop - document.body.clientTop
	};
}

 对象的位置:

//获取item相对于文档的位置,必须循环取得item的父级
function getPosition(e)
{
	var left = 0;
	var top = 0;
	while (e.offsetParent)
	{
		left += e.offsetLeft + (e.currentStyle ? (parseInt(e.currentStyle.borderLeftWidth)).NaN0() : 0);
		top += e.offsetTop + (e.currentStyle ? (parseInt(e.currentStyle.borderTopWidth)).NaN0() : 0);
		e = e.offsetParent;
	}

	left += e.offsetLeft + (e.currentStyle ? (parseInt(e.currentStyle.borderLeftWidth)).NaN0() : 0);
	top += e.offsetTop + (e.currentStyle ? (parseInt(e.currentStyle.borderTopWidth)).NaN0() : 0);

	return {
		x :left,
		y :top
	};

}

 上面有个函数的扩展:NaN0()

//非数字扩展
Number.prototype.NaN0 = function()
{
	return isNaN(this) ? 0 : this;
}

 如此一来,就可以计算鼠标的偏移量:

//获取鼠标的偏移量
function getMouseOffset(target, ev)
{
	ev = ev || window.event;
	var mousePos = mouseCoords(ev);
	var docPos = getPosition(target);
	return {
		x :mousePos.x - docPos.x,
		y :mousePos.y - docPos.y
	}
}

 下次继续

分享到:
评论

相关推荐

    移动通信原理 很不错的移动通信基础概念入门书籍

    很不错的移动通信基础概念入门书籍 动通信系统从20世纪80年代诞生以来,到2020年将大体经过5代的发展历程,而且到2010年,将从第3代过渡到第4代(4G)。到4G,除蜂窝电话系统外,宽带无线接入系统、毫米波LAN、智能...

    iOS移动开发从入门到精通.epub

    第三篇为实例篇,通过对实体层、表现层和逻辑层三层相关技术的讲解,向读者详细展示了MVC设计模式在项目开发中的应用方式,并*终创建一个成熟的商业项目。  本书采用丰富的实例,直观的代码展示,向读者形象地讲解...

    移动App应用服务器开发从入门到精通

    6.1 开发入门:第一个json 新建一个扩展名json的文件,如one.json(下图) 然后录入如下内容 {"item":{ <!-- 数据准备部分,您可以从数据库中查询 --> 土豆 <we name=price>1.24 <we name=unit>KG ...

    经典分享:移动IP系列资料

    第8章 园区内的移动:移动IP的一个简单应用 102 第9章 因特网上的移动:一个更复杂的应用 113 第10章 服务提供商对移动IP的应用 129 第11章 移动IP的其他应用 142 第四部分 有关将来的话题 第12章 IPv6的移动性...

    [详细完整版]移动通信试题.pdf

    反射 光纤既为光导纤维的简称,光纤通信是以____为传输载体,以光纤为传输媒质的一种通信方式 光波 在ONU故障情况下,可以测到ONU发光,此时光功率计应该使用的波长是_ 1 1310nm 初验通过后,建设单位可安排进行系统...

    Flash+Flex+AIR移动开发入门经典——适用于Android、iOS和BlackBerry

    它将帮助你从一个基础水平开始创建基于Flash的移动应用程序。本书还包含大量程序代码示例,并进行了详细的解释,基本上涵盖了如何从零开始使用ActionScript 3.0创建适合于Flash Player 10.1和AIR 2.5目标平台的移动...

    移动应用开发宝典进阶版.zip

    《移动应用开发宝典进阶版》是一本针对移动应用开发者的资源,它提供了深入的知识和实践经验,帮助开发者在移动应用开发领域更上一层楼。以下是该资源的一些特点和内容: 1. 全面的移动应用开发知识:《移动应用...

    Python编程入门经典

    20.10.1 SOAP快速入门 442 20.10.2 SOAP请求 443 20.10.3 SOAP响应 444 20.10.4 错误处理机制 444 20.10.5 展示一个BittyWiki的 SOAP接口 445 20.10.6 基于SOAP Web服务的 wiki搜索和替换 447 20.11 为Web服务API...

    TransCAD快速入门.pdf

    TransCAD快速入门.pdf提供了一个详细的指南,指导用户快速入门TransCAD,学习如何使用TransCAD来创建、储存并打印地图,显示出行方式分担和交通流量。 知识点1:创建总览地图 TransCAD快速入门.pdf首先指导用户如何...

    移动通信原理

    移动通信入门书籍,从物理层、网络层及网络规划层介绍了网络通信的原理。

    基于Java的移动游戏开发入门

    一、引言近来,移动游戏在提供个人娱乐方面变得越来越流行。这种流行使得移动游戏给手机用户,游戏出版商和手持设备制造者带来丰厚的利润;移动游戏,在给游戏开发者和相关人员带来无数商机的同时,处于极为重要的枢纽...

    LTE物理层基础学习资料_简单介绍.ppt

    LTE物理层基础知识介绍,包括帧结构,PDCCH,PHICH,PSS,SSS,PBCH,PCFICH,PDSCH,CRS,MBSFN,DRS,PUCCH,PRACH,PUCCH,功率分配等简单原理的介绍。本文档为PPT,适合初学者初步了解物理层各方面原理,不适合对LTE物理层有...

    C语言入门经典(第4版)--源代码及课后练习答案

    IvorHorton还著有关于C、C++和Java的多部入门级好书,如《C语言入门经典(第4版)》和《C++入门经典(第3版)》。 译者  杨浩,知名译者,大学讲师,从事机械和计算机方面的教学和研究多年,发表论文数篇,参编和翻译的...

    Android编程快速入门——字节跳动.pptx

    Android 是一个基于 Linux 的自由及开放源代码的操作系统,主要用于移动设备such as smartphones and tablet computers。 Android 的前世今生可以追溯到 1989 年,安迪鲁宾加入 Apple,2001 年施密特加入 Google,...

    android开发入门与实战(下)

    1.5 更上一层楼——加入Android开发社区 1.6 本章小结 第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 ...

    深度学习入门之Pytorch

    深度学习如今已经成为科技领域最炙手可热的技术,在本书中,我们将帮助你入门深度学习。本书将从机器学习和深度学习的基础理论入手,从零开始学习 PyTorch,了解 PyTorch 基础,以及如何用 PyTorch 框架搭建模型。...

    云计算入门无忧:第一次亲密接触

    云计算入门无忧:第一次亲密接触 背景 什么是云计算 云计算的部署方式 从部署方式来说,总共有两类云计算: 云计算的特征 1、软件及硬件都是资源 2、这些资源都可以根据需要动态的配置和扩展 3、这些资源在物理上都...

    新编Pro.ENGINEER野火版3.0入门与提高.pdf

    光盘中还包括书中各章“过关练习题”对应的习题答案,书中各个实例对应的素材与模板,以及一本内含260个经典的Pro/ENGINEER野火版3.0实战技巧的电子版图书,大大地扩充了《新编Pro/ENGINEER野火版3.0入门与提高》...

Global site tag (gtag.js) - Google Analytics