经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » jQuery » 查看文章
jQuery插件,判断鼠标的移入移出方向
来源:cnblogs  作者:凌晨肆点的洛杉矶  时间:2019/4/3 16:24:14  对本文有异议

今天用jQuery封装了一个简单的插件,判断鼠标的移入移出方向,以后的项目中可能还会遇到这样一个简单的效果,就记录下来吧!

先看结构和样式:

  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title>判断鼠标移入移出方向</title>
  6. <style type="text/css">
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. }
  11. .outer {
  12. width: 400px;
  13. height: 300px;
  14. border: 2px solid orange;
  15. margin: 100px auto;
  16. overflow: hidden;
  17. position: relative;
  18. }
  19. .outer img{
  20. width: 400px;
  21. height: 300px;
  22. }
  23. .outer div {
  24. position: absolute;
  25. width: 100%;
  26. height: 100%;
  27. background-color: black;
  28. opacity: 0.5;
  29. display: none;
  30. line-height: 300px;
  31. color: white;
  32. }
  33. </style>
  34. </head>
  35. <body>
  36. <div class="outer">
  37. <img src="timg.jpg">
  38. <div class="mask">如果有来生,有没有人爱,我也要努力做一个可爱的人。</div>
  39. </div>
  40.  
  41. <script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
  42. <script src="jquery.hover.js" type="text/javascript" charset="utf-8"></script>
  43. <script type="text/javascript">
  44. $(function(){
  45. $(".outer").fangxiang();
  46. })
  47. </script>
  48. </body>
  49. </html>

下面是封装的jquery.hover.js

  1. ;(function($){
  2. $.fn.fangxiang = function(){
  3. var disL = $(this).offset().left;
  4. var disR = disL + $(this).outerWidth();
  5. var disT = $(this).offset().top;
  6. var disB = disT + $(this).outerHeight();
  7. $(this).hover(function(e){
  8. var dirL = Math.abs(e.clientX-disL);
  9. var dirR = Math.abs(e.clientX-disR);
  10. var dirT = Math.abs(e.clientY-disT);
  11. var dirB = Math.abs(e.clientY-disB);
  12. var dir = Math.min(dirL,dirR,dirT,dirB);
  13. switch(dir){
  14. case dirL:
  15. $(this).find("div").show().css({"left":-$(this).outerWidth(),"top":0}).stop().animate({"left":0},500);
  16. break;
  17. case dirR:
  18. $(this).find("div").show().css({"left":$(this).outerWidth(),"top":0}).stop().animate({"left":0},500);
  19. break;
  20. case dirT:
  21. $(this).find("div").show().css({"top":-$(this).outerHeight(),"left":0}).stop().animate({"top":0},500);
  22. break;
  23. case dirB:
  24. $(this).find("div").show().css({"top":$(this).outerHeight(),"left":0}).stop().animate({"top":0},500);
  25. break;
  26. }
  27. },function(e){
  28. var dirL = Math.abs(e.clientX-disL);
  29. var dirR = Math.abs(e.clientX-disR);
  30. var dirT = Math.abs(e.clientY-disT);
  31. var dirB = Math.abs(e.clientY-disB);
  32. var dir = Math.min(dirL,dirR,dirT,dirB);
  33. switch(dir){
  34. case dirL:
  35. $(this).find("div").stop().animate({"left":-$(this).outerWidth()},500);
  36. break;
  37. case dirR:
  38. $(this).find("div").stop().animate({"left":$(this).outerWidth()},500);
  39. break;
  40. case dirT:
  41. $(this).find("div").stop().animate({"top":-$(this).outerHeight()},500);
  42. break;
  43. case dirB:
  44. $(this).find("div").stop().animate({"top":$(this).outerHeight()},500);
  45. break;
  46. }
  47. })
  48. }
  49. })(jQuery);
jquery.hover.js

感觉写的不是很完美,需要借助我写的这个结构才能使用,请大神帮忙优化!

附上使用的图片timg.jpg

原文链接:http://www.cnblogs.com/zhanglongke/p/10640690.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号