`
xplq
  • 浏览: 89863 次
  • 性别: 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
	}
}

 下次继续

分享到:
评论

相关推荐

    Android移动应用开发从入门到精通.pdf( 张魏 李卉 )

    综上所述,《Android移动应用开发从入门到精通》一书覆盖了从基础知识到高级技术的各个方面,适合各个层次的学习者。无论是想要快速入门的新手还是希望进一步提升技能的专业开发者,都能从中获得宝贵的知识和实践...

    之前看的三层架构入门源码

    这一层通常包括网页、桌面应用或者移动应用的用户界面。在三层架构中,表现层不包含任何业务逻辑,它仅负责转发用户的请求到业务逻辑层,并将返回的结果展示给用户。 2. 业务逻辑层(Business Logic Layer): 业务...

    三层架构入门

    这一层通常包括Web页面、桌面应用或移动应用等。用户在这里输入数据,点击按钮,触发业务流程。表现层的设计应该使用户操作直观易用,同时也负责处理错误和异常,提供友好的用户体验。 2. 业务逻辑层(Business ...

    Android 移动开发入门与进阶 源代码

    "Android 移动开发入门与进阶 源代码"是一个宝贵的资源,它涵盖了从基础到高级的Android应用开发知识。由张立国编著的这本书,通过源代码的形式,帮助读者深入理解Android应用的构建过程。 本书分为多个章节,从"ch...

    ANDROID移动应用开发从入门到精通

    《Android移动应用开发从入门到精通》是一本专注于Android平台应用开发的教材,它不仅提供了从零开始的入门指导,还涵盖了移动应用开发的进阶知识与技能。本书的作者Shane Conder和Lauren Darcey拥有丰富的移动和...

    简单三层模式入门级电子商务源码

    1. 表现层:这一层是用户与系统交互的地方,通常包括网页、GUI界面或者移动应用。在这个项目中,MyWatchShop可能包含了用户界面的设计,如商品浏览、购物车管理、订单处理等功能。表现层负责接收用户的请求并展示...

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

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

    三层架构案例 很好一个三层架构入门案例。。希望对大家有用

    1. **表现层**:这是用户与系统交互的界面,通常包括网页、桌面应用或者移动应用。在电话簿管理系统中,表现层可能包含添加联系人、查找联系人、编辑和删除联系人的功能。用户通过这些界面进行操作,而无需关心数据...

    商业编程-源码-通过数据的添加删除学三层入门源码.zip

    这个压缩包文件"商业编程-源码-通过数据的添加删除学三层入门源码.zip"提供了学习和理解三层架构的一个基础起点,重点是通过数据的添加和删除操作来实践。下面将详细解释三层架构以及在实际开发中的应用。 **一、三...

    MTK入门导读—新手入门参考

    - **META**:移动工程测试架构,是一个集成开发环境,支持代码编写、编译、调试等功能。 - **MCT**:可能是指MediaTek的其他开发工具或特定功能,具体用途可能需要更详细的文档来解释。 5. **开发目录结构解析** ...

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

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

    99se入门到精通

    99SE 入门到精通 Protel99SE 软件使用基本操作速成是 PCB 设计的重要组成部分,本文将对 Protel99SE 软件的基本操作进行详细的介绍。Protel99SE 软件使用基本操作速成是 PCB 设计的重要组成部分,本文将对 Protel...

    《Android移动应用开发从入门到精通》清晰版

    《Android移动应用开发从入门到精通》清晰版,这是一本关于Android移动应用开发的学习指南。Android是一种流行的移动操作系统,由Google主导开发。该标题表明书籍覆盖从初学者到具有一定技术水平的开发者所涉及的...

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

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

    最简单,最适合入门学习的三层架构例子.zip

    1. **表示层(Presentation Layer)**:这是用户与系统交互的界面,通常包括网页、桌面应用或移动应用等。在三层架构中,表示层负责接收用户的输入,将其转化为业务逻辑层可以理解的数据,并将业务处理的结果呈现给...

    Qt 入门中文资料 Qt从入门到精通

    Qt是一个跨平台的应用开发框架,使用C++语言编写,广泛应用于桌面、嵌入式系统和移动设备的GUI应用开发。本篇文章将深入探讨Qt从入门到精通的过程,涵盖基础知识、进阶技巧和高级应用。 #### 一、Qt基础概览 Qt...

    android入门到精通.pdf

    例如,Linux内核提供硬件抽象,系统运行库层则包含了一系列的C/C++库,如Android运行时库(ART)和各种硬件服务。 接着,书中会介绍Android Studio,这是官方推荐的集成开发环境(IDE),包含了编写、调试和发布...

Global site tag (gtag.js) - Google Analytics