图片 上一张 下一张 链接效果

人人网相册和酷狗音乐网站上面当鼠标移动到图片上面,鼠标的形状会根据其在图片上的位置改变。贴个实现方法:

代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    
<title>无标题页</title>

    
<script src="jquery-1.3.2.js" type="text/javascript"></script>
    
<style type="text/css">
    .rootclass
{ border:none;position:relative;}
    
</style>
    
<script type="text/javascript">
    $(document).ready(
function() {
      $(
".rootclass").mousemove(function(e){  
                                 
var positionX=e.originalEvent.x||e.originalEvent.layerX||0;
                                 
if(positionX<=$(this).width()/2){           
                                 this.style.cursor='url("pre.cur"),auto';
                                 $(
this).attr('title','点击查看上一张');
                                 $(
this).parent().attr('href',$(this).attr('left')); 
                             }
else{  
                                 
this.style.cursor='url("next.cur"),auto';
                                 $(
this).attr('title','点击查看下一张');
                                 $(
this).parent().attr('href',$(this).attr('right'));
                            }  
   });
});
    
</script>
</head>
<body>
  
<href="#" >
  
<img  src="11.bmp" alt="" class="rootclass" left="http://www.google.cn" right="http://www.baidu.cn" />
  
</a>
</body>
</html>

 

    说明:1.需要调用Jquery。

            2.这里获取鼠标在图片的位置用了个投机的方法,设置图片的position:relative

              直接使用  var positionX=e.originalEvent.x||e.originalEvent.layerX||0; 来获取。

           3. 为了方便直接在图片上添加left="http://www.google.cn" right="http://www.baidu.cn" 为其上一张,下一张链接地址。记得给<img />套上<href="#" ></a>

     参考:1.jQuery获取当前鼠标相对位置坐标和点击图片跳转上一张或下一张功能

             2.offsetX与layerX区别

             3.JS在IE和FireFox之间的区别汇总

             4.clientX, pageX, offsetX,x, layerX, screenX, offsetLeft

             源码下载

很久没写文章了,这段时间一直在做类似鲜果的一个应用和数据采集,还有就是对企业和个人成长的思考。

    前段时间写了篇图片 上一张 下一张 链接效果,后来看到 jquery插件封装,手里痒痒的,拿这个例子做ex.

    封装后的JS源码:

  

代码
/*
 * imageupdown 1.0 
 * Copyright (c) 2009 
 * Date: 2010-04-20
 * 图片移动上一张 下一张特效
 
*/
(
function($){
    $.fn.imageupdown 
= function(options){
        
var defaults = {
            upCursor:
"pre.cur",
            upTitle:
"点击查看上一张",
            upUrl:$(
this).attr('left'),
            downCursor:
"next.cur",
            downTitle:
"点击查看下一张",
            downUrl:$(
this).attr('right')
        }
        
var options = $.extend(defaults, options);
        
this.each(function(){
            
var thisImage=$(this);
            $(thisImage).bind(
"mousemove",function(e){
              
var positionX=e.originalEvent.x||e.originalEvent.layerX||0;
                         
if(positionX<=$(this).width()/2){           
                                 this.style.cursor='url('+options.upCursor+'),auto';
                                 $(
this).attr('title',''+options.upTitle+'');
                                 $(
this).parent().attr('href',''+options.upUrl+''); 
                             }
else{  
                                 
this.style.cursor=''+options.downCursor+'';
                                 $(
this).attr('title',''+options.downTitle+'');
                                 $(
this).parent().attr('href',''+options.downUrl+'');
                            }  
            });
        });
    };
})(jQuery);

 

html页面调用方法:

 

  <script type="text/javascript">
     $(document).ready(
function() {
         $(
".rootclass").imageupdown();
     });
    
</script>

 

 可能有疑惑的地方:

(1)function(e)  e 是什么意思

   应该是对应事件。

   $().click(function(e) {}); // 这里的e是click事件

  $().focus(function(e) {});// 这里的e是focus事件

   源码

posted @ 2010-04-20 11:13  rob_2010  阅读(429)  评论(0)    收藏  举报