div的onmouseout事件让div消失时,会出现这样的情况,就是当鼠标移至div中的其它内容时,此时也判定为离开div,会触发onmouseout事件,这样div中的内容就不能操作了。解决的办法是当触发onmouseout事件时,先判断鼠标是否在div内,如果在,说明鼠标并没有离开div,就不删除div,否则,删除之。OK,现在问题解决了。
就是找到该div左上角和右下角坐标,判断鼠标的坐标是否在这一区域就可以了。
[javascript] view plaincopyprint?
div.οnmοuseοut=function(event){
var div = document.getElementById("test");
<span style="color:#FF6600;">var x=event.clientX;
var y=event.clientY;
var divx1 = div.offsetLeft;
var divy1 = div.offsetTop;
var divx2 = div.offsetLeft + div.offsetWidth;
var divy2 = div.offsetTop + div.offsetHeight; </span>
if( x < divx1 || x > divx2 || y < divy1 || y > divy2){
//如果离开,则执行。。
后面为一些常用属性方便查找:
clientHeight 获取对象的高度,不计算任何边距、边框、滚动条,但包括该对象的补白。
clientLeft 获取 offsetLeft 属性和客户区域的实际左边之间的距离。
clientTop 获取 offsetTop 属性和客户区域的实际顶端之间的距离。
clientWidth 获取对象的宽度,不计算任何边距、边框、滚动条,但包括该对象的补白。
offsetHeight 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度。
offsetLeft 获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置。
offsetParent 获取定义对象 offsetTop 和 offsetLeft 属性的容器对象的引用。
offsetTop 获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置。
offsetWidth 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度。
offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。
offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。
clientX,clientY 鼠标当前相对于网页的位置,当鼠标位于页面左上角时clientX=0, clientY=0
screenX, screenY是相对于用户显示器的位置
网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的宽)
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth
div的onmouseout事件让div消失时,会出现这样的情况,就是当鼠标移至div中的其它内容时,此时也判定为离开div,会触发onmouseout事件,这样div中的内容就不能操作了。解决的办法是当触发onmouseout事件时,先判断鼠标是否在div内,如果在,说明鼠标并没有离开div,就不删除div,否则,删除之。OK,现在问题解决了。就是找到该div左上角和右下角坐标,判断鼠标
找到该
div
左上角和右下角坐标,
判断
鼠标
的坐标
是否
在这一区域就可以了。
var eventPositiont=function(event){
var
div
= document.getElementById("id");
var x=event.clientX;
var y=event.clientY;
var
div
x1 =
div
.o
一、
鼠标
进入容器方向的判定
判断
鼠标
从哪个方向进入元素容器是一个经常碰到的问题,如何来
判断
呢?
首先想到的是:获取
鼠标
的
位置
,然后经过一大堆的if..else逻辑来确定。这样的做法比较繁琐,下面介绍两种比较方便的方法:
第一种方法,利用圆和反正切三角函数
如下图所示:
以
div
容器的
中
心点作为圆心,以高和宽的最小值作为直径画圆,将圆以[π/4,3π/4),[3π/4,5π/4),[5π/4,7π/4),[-π/4,π/4)划分为四个象限。
代码如下:
$(".box").on("mouseenter mouseleave",function(e){
/** 获取容器宽高 **/
jQuery获取
鼠标
的坐标
位置
这里用到两个属性:event.pageX和event.pageY
event.pageX:该属性返回
鼠标
指针的
位置
,相对于文档的左边缘;该事件属性通常与event.pageY属性一起使用
event.pageY:该属性返回
鼠标
指针的
位置
,相对于文档的上边缘;该事件属性通常与event.pageX属性一起使用
通过这两个属性,可以确定元素在当前页面的坐标值,
鼠标
相对以文档的左边缘的位.........
1.用$.contains
判断
$(document).mousemove(function(e){
if($.contains($('.box')[0],e.target) || $.contains($('.box')[0]==e.target)){
alert('
鼠标
在box盒子里')}
else{alert('
鼠标
不在box盒子里')}
$.contains是jQuery里用来
判断
一个标签
是否
包含另一个标签的方法,其用法是$.contains(父元素,子元素)。但是$
checkIn(obj) {
var x = Number(window.event.clientX) //
鼠标
相对屏幕横坐标
var y = Number(window.event.clientY) //
鼠标
相对屏幕纵坐标
var
div
_x = Number(obj.getBoundingClientRect().left) // obj相对屏幕的横坐标
var
div
_x_width = Number(
本文实例讲述了
JS
实现网页
Div
层Clone拖拽效果。分享给大家供大家参考。具体如下:
这是一个层拖动,网页上的拖拽Clone效果实例,两个层可在
鼠标
的拖动下,任意改变
位置
,智能
判断
层级,也就是智能
判断
自身
是否
处于最高层,最高处的层是不会被其它层遮挡的。
运行效果截图如下:
在线演示地址如下:
http://demo.jb51.net/
js
/2015/
js
-draw-box-clone-style-codes/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml
可以使用以下代码来
判断
div
中
是否
有内容:
if(document.getElementById("
div
Id").innerHTML.trim().length == 0){
console.log("该
div
中
没有内容");
} else {
console.log("该
div
中
有内容");