前一篇文章中我们详细的为大家解析了JavaScript中鼠标跟随的实现实例,那么我们今天给大家介绍下jQuery实现DIV跟随鼠标移动的案例!
重点是弄清楚如何获取鼠标现位置与移动后位置,p现在位置与移动后位置:
用jQuery实现p随鼠标移动而移动,不是鼠标自身的位置!!而是p相对于之前位置的移动
代码如下:(注意看绿色部分的解释)
更多特效资源,请移步php特效下载频道:鼠标特效
<!DOCTYPE html>
<html>
<head>
<meta charset="{utf-8}">
<title></title>
<script src="../jquery-3.2.0.js"></script>
<style>
.aa{
height: 100px;
width: 200px;
position: absolute;
background-color: green;
}
</style>
</head>
<body>
<p class="aa"></p>
</body>
</html>
<script>
$(".aa").mousedown(function(e){
//设置移动后的默认位置
var endx=0;
var endy=0;
//获取p的初始位置,要注意的是需要转整型,因为获取到值带px
var left= parseInt($(".aa").css("left"));
var top = parseInt($(".aa").css("top"));
//获取鼠标按下时的坐标,区别于下面的es.pageX,es.pageY
var downx=e.pageX;
var downy=e.pageY; //pageY的y要大写,必须大写!!
// 鼠标按下时给p挂事件
$(".aa").bind("mousemove",function(es){
//es.pageX,es.pageY:获取鼠标移动后的坐标
var endx= es.pageX-downx+left; //计算p的最终位置
var endy=es.pageY-downy+top;
//带上单位
$(".aa").css("left",endx+"px").css("top",endy+"px")
});
})
$(".aa").mouseup(function(){
//鼠标弹起时给p取消事件
$(".aa").unbind("mousemove")
})
</script>区别于下面这段代码:(最终实现效果是p随鼠标位置移动,具体效果想看的可以粘贴复制对比看看差距在哪)
<script>
$(".aa").mousedown(function(e){
$(document).bind("mousemove",function(e){
$(".aa").css("left",e.pageX).css("top",e.pageY)
});
})
$(".aa").mouseup(function(){
$(document).unbind("mousemove")
})
</script>总结:
本文使用示例代码为大家介绍了jQuery实现DIV跟随鼠标移动的案例,相信小伙伴也已经对此有一定的了解,希望对你的工作有所帮助~
相关推荐:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Que sont les plug-ins jquery ?
Comment faire fonctionner json avec jquery
Comment supprimer des éléments dans jquery
Utilisation de la méthode jQuery hover()
jquery implémente la méthode de pagination
Qu'est-ce qu'un élément caché dans jquery
Qu'est-ce qui est mis en évidence dans jquery
Que dois-je faire si la souris ne bouge plus ?