码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-01-08 07:03:59      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

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

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</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属性值,能够实现跟随效果。
二.相关阅读:
1.hover()函数可以参阅jQuery的hover事件一章节。
2.append()函数可以参阅jQuery的append()方法一章节。 
3.css()函数可以参阅jQuery的css()方法一章节。
4.pageY属性可以参阅jQuery的event.pageY属性一章节。
5.fadeIn()函数可以参阅jQuery的fadeIn()方法一章节。
6.remove()函数可以参阅jQuery的remove()方法一章节。 
7.mousemove事件可以参阅jQuery的mousemove事件一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=10888

更多内容可以参阅:http://www.softwhy.com/jquery/

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

标签:

原文地址:http://www.cnblogs.com/xiaofinder/p/5111844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!