jQuery鼠标悬浮链接弹出跟随图片实例代码

前端技术 2023/09/10 JavaScript

本文章介绍了一种比较常用的效果,那就是当鼠标滑过链接的时候,能够出现跟随鼠标指针移动的图层,在实际应用中,一般是对于链接的一些说明文字或者图片等等,下面是代码实例:

<!DOCTYPE html>
<html>
<head>
<meta charset=\"gb2312\">
<title>phpstudy</title>
<style type=\"text/css\">
body{
 margin:0;
 padding:40px;
 background:#fff;
 font:80% Arial, Helvetica, sans-serif;
 color:#555;
 line-height:180%;
}
a{
 text-decoration:none;
 color:#f30; 
}
p{
 clear:both;
 margin:0;
 padding:.5em 0;
}
img{border:none;}
#screenshot{
 position:absolute;
 border:1px solid #ccc;
 background:#333;
 padding:5px;
 display:none;
 color:#fff;
}
</style>
<script type=\"text/javascript\" src=\"mytest/jQuery/jquery-1.8.3.js\"></script>
<script type=\"text/javascript\">
this.screenshotPreview=function(){ 
 xOffset = 10;
 yOffset = 30;
 $(\"a.screenshot\").hover(function(e){
 this.t = this.title;
 var c = (this.t != \"\") ? \"<br/>\" + this.t : \"\";
 $(\"body\").append(\"<p id=\'screenshot\'><img src=\'\"+this.rel+\"\' />\"+c+\"</p>\");   
 $(\"#screenshot\")
 .css(\"top\",(e.pageY - xOffset) + \"px\")
 .css(\"left\",(e.pageX + yOffset) + \"px\")
 .fadeIn(\"fast\");  
 },
 function(){
 this.title = this.t; 
 $(\"#screenshot\").remove();
 }); 
 $(\"a.screenshot\").mousemove(function(e){
 $(\"#screenshot\")
 .css(\"top\",(e.pageY-xOffset)+\"px\")
 .css(\"left\",(e.pageX+yOffset)+\"px\");
 }); 
};
$(document).ready(function(){
 screenshotPreview();
});
</script>
</head>
<body>
<a href=\"#\" class=\"screenshot\" title=\"蚂蚁部落\" rel=\"mytest/demo/thesmall.jpg\">蚂蚁部落</a>欢迎您
</body>
</html>

效果图:

以上代码实现了我们的要求,下面简单介绍一下实现过程:
代码注释:
1.this.screenshotPreview=function(){ },声明一个函数用来实现跟随效果,在本效果中,this其实是可以省略,它指向window。
2.xOffset=10,声明一个变量,用来规定鼠标指针距离弹出图片的横向距离。
3.yOffset=30,声明一个变量,用来规定鼠标指针距离弹出图片的纵向距离。
4.$(\"a.screenshot\").hover(function(e){},function(e){}),规定当鼠标移到链接和离开链接所要执行的函数。
5.this.t = this.title将链接的title属性值赋值给t属性,这里的this是指向当前鼠标悬浮的链接对象。
6.var c = (this.t != \"\") ? \"<br/>\" + this.t : \"\",如果this.t不为空,也就是存在title属性值,那么插入一个换行符并且连接当前标题内容,否则将c设置为空。
7.$(\"body\").append(\"<p id=\'screenshot\'><img src=\'\"+ this.rel +\"\'/>\"+ c +\"</p>\"),将图片和相关说明添加到body。
8.$(\"#screenshot\").css(\"top\",(e.pageY-xOffset)+\"px\").css(\"left\",(e.pageX+yOffset)+\"px\").fadeIn(\"fast\"),设置p元素的top和left属性值,并且采用淡入效果展现。
9.this.title=this.t,将title内容赋值给this.title,其实不要这一句也没有任何问题,有点多余。
10.$(\"#screenshot\").remove(),移出p元素。
11.$(\"a.screenshot\").mousemove(function(e){}),用来设置当鼠标指针移动时,图片能够跟随。
12.$(\"#screenshot\").css(\"top\",(e.pageY-xOffset)+\"px\") .css(\"left\",(e.pageX+yOffset)+\"px\"),设置p元素的top和left属性值,能够实现跟随效果。

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文地址:https://www.stayed.cn/item/26653

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。