jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
程序员文章站
2023-11-06 16:44:28
本文实例讲述了jquery实现的响应鼠标移动方向插件用法。分享给大家供大家参考,具体如下:
html代码如下:
&...
本文实例讲述了jquery实现的响应鼠标移动方向插件用法。分享给大家供大家参考,具体如下:
html代码如下:
<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <meta name="generator" content="editplus®"> <meta name="author" content=""> <meta name="keywords" content=""> <meta name="description" content=""> <title>www.jb51.net jquery响应鼠标移动</title> <style> *{margin:0;padding:0;} ul,li{list-style:none;} div{font-family:"microsoft yahei";} html,body{width:100%; height:100%; background:#f2f2f2;} ul{margin-left:50px;} ul li{float:left;} ul li .outer{width:300px; height:250px;} ul li .outer .inner{width:300px; height:250px; background:rgba(0, 0, 0, .3);} </style> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> </head> <body> <ul> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/09.jpg" width="300px" height="250px" /> <div class="inner"> 我是图片1 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/010.jpg" width="300px" height="250px" /> <div class="inner"> 我是图片2 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/011.jpg" width="300px" height="250px" /> <div class="inner"> 我是图片3 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/012.jpg" width="300px" height="250px" /> <div class="inner"> 我是图片4 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/013.jpg" width="300px" height="250px" /> <div class="inner"> 我是图片5 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/014.jpg" width="300px" height="250px" /> <div class="inner"> 我是图片6 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/015.jpg" width="300px" height="250px" /> <div class="inner"> 我是图片7 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/016.jpg" width="300px" height="250px" /> <div class="inner"> 我是图片8 </div> </div> </li> </ul> <script> (function($){ $.fn.extend({ show : function(div){ var w = this.width(), h = this.height(), xpos = w/2, ypos = h/2, eventtype = "", direct = ""; this.css({"overflow" : "hidden", "position" : "relative"}); div.css({"position" : "absolute", "top" : this.width()}); this.on("mouseenter mouseleave", function(e){ var oe = e || event; var x = oe.offsetx; var y = oe.offsety; var angle = math.atan((x - xpos)/(y - ypos)) * 180 / math.pi; if(angle > -45 && angle < 45 && y > ypos){ direct = "down"; } if(angle > -45 && angle < 45 && y < ypos){ direct = "up"; } if(((angle > -90 && angle <-45) || (angle >45 && angle <90)) && x > xpos){ direct = "right"; } if(((angle > -90 && angle <-45) || (angle >45 && angle <90)) && x < xpos){ direct = "left"; } move(e.type, direct) }); function move(eventtype, direct){ if(eventtype == "mouseenter"){ switch(direct){ case "down": div.css({"left": "0px", "top": h}).stop(true,true).animate({"top": "0px"}, "fast"); break; case "up": div.css({"left": "0px", "top": -h}).stop(true,true).animate({"top": "0px"}, "fast"); break; case "right": div.css({"left": w, "top": "0px"}).stop(true,true).animate({"left": "0px"}, "fast"); break; case "left": div.css({"left": -w, "top": "0px"}).stop(true,true).animate({"left": "0px"}, "fast"); break; } }else{ switch(direct){ case "down": div.stop(true,true).animate({"top": h}, "fast"); break; case "up": div.stop(true,true).animate({"top": -h}, "fast"); break; case "right": div.stop(true,true).animate({"left": w}, "fast"); break; case "left": div.stop(true,true).animate({"left": -w}, "fast"); break; } } } } }); })(jquery) $(".outer").each(function(i){ $(this).show($(".inner").eq(i)); }); </script> </body> </html>
其中控制响应鼠标方向的js代码如下:
/* *使用说明: * $(".a").show($(".b")) * a是展示层,b是遮罩层 * b在a的内部 */ $(".outer").each(function(i){ $(this).show($(".inner").eq(i)); });
这里使用在线html/css/javascript代码运行工具:http://tools.jb51.net/code/htmljsrun运行代码,可得到如下效果:
完整实例代码点击此处。
更多关于jquery相关内容感兴趣的读者可查看本站专题:《jquery窗口操作技巧总结》、《jquery扩展技巧总结》、《jquery常用插件及用法总结》、《jquery表格(table)操作技巧汇总》、《jquery常见经典特效汇总》及《jquery选择器用法总结》
希望本文所述对大家jquery程序设计有所帮助。
上一篇: Vue.js开发环境搭建
下一篇: 如此有个性的人不多见呀!
推荐阅读
-
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
-
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
-
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
-
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
-
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
-
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
-
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
-
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
-
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
-
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】