• jQuery鼠标悬停


    (function ($) {
        $.fn.hoverdir = function(options){
            var options = $.extend({
                choice : ".cove"
            },options);
            return this.each(function(){
                var self = $(this);
                self.hover(function(e){
                    mouseMove(e,self,true);
                },function(e){
                    mouseMove(e,self,false);
                });
                function mouseMove(e,element,bool){    //光标、元素、布尔
                    var top    = element.offset().top;   //元素top距离浏览器顶部距离
                    var bottom = top + element.height(); //元素bottom距离浏览器顶部距离
                    var left   = element.offset().left;  //元素left距离浏览器左边距离
                    var right  = left + element.width(); //元素right距离浏览器左边距离
                    var x      = e.pageX;                //光标当前横向x位置
                    var y      = e.pageY;                //光标当前纵向y位置
                    //光标当前横纵向位置减去元素各方位距离(取最小值) = 将要显示的方向
                    var sT = Math.abs(y - top);
                    var sB = Math.abs(y - bottom);
                    var sL = Math.abs(x - left);
                    var sR = Math.abs(x - right);
                    var current = Math.min(sT,sB,sL,sR);         //取元素最小值从而进行switch排除
                    var choices  = element.find(options.choice); //获取需要选择的元素
                    switch (current){
                      case sT:
                          if(bool){
                              choices.css({left:0,top:'-100%'}).animate({top:0},200);
                            }else{
                                choices.stop(1,1).animate({top:'-100%'},200);
                            }
                            break;
                        case sB:
                            if(bool){
                                choices.css({left:0,top:'100%'}).animate({top:0},200);                            
                            }else{
                                choices.stop(1,1).animate({top:'100%'},200);    
                            }
                            break;
                        case sL:
                            if(bool){
                                choices.css({left:'-100%',top:0}).animate({left:0},200);                            
                            }else{
                                choices.stop(1,1).animate({left:'-100%'},200);    
                            }
                            break;
                        case sR:
                            if (bool){
                                choices.css({left:'100%',top:0}).animate({left:0},200);                            
                            }else{
                                choices.stop(1,1).animate({left:'100%'},200);    
                            }
                            break;
                    }
                }
            });
        }
    })(jQuery);
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
                body{ background-color:#2A2A2A;}
                li{list-style: none;}
                #wrap{width: 800px;margin:100px auto;}
                #wrap ul li{float: left;margin: 5px;width: 230px;height: 360px;position: relative;overflow: hidden;}
                #wrap ul li .cove{width: 230px;height: 220px;position: absolute;background: url(img/new-bg.png);padding: 140px 0 0 0;top: 100%;left: 100%;}
                #wrap ul li .cove p{font-size: 14px;color:#fff;text-align: center;}
            </style>
        </head>
        <body>
        <div id="wrap">
            <ul>
                <li>
                    <img src="img/1.png" />
                        <div class="cove">
                            <p>pci1</p>
                            <p>Picture info 1</p>
                        </div>
                </li>
                <li>
                    <img src="img/2.png" />
                        <div class="cove">
                            <p>pci2</p>
                            <p>Picture info 2</p>
                        </div>
                </li>
                <li>
                    <img src="img/3.png" />
                        <div class="cove">
                            <p>pci3</p>
                            <p>Picture info 3</p>
                        </div>
                </li>
                <li>
                    <img src="img/4.png" />
                        <div class="cove">
                            <p>pci4</p>
                            <p>Picture info 4</p>
                        </div>
                </li>
                <li>
                    <img src="img/5.png" />
                        <div class="cove">
                            <p>pci5</p>
                            <p>Picture info 5</p>
                        </div>
                </li>
          <li>
                    <img src="img/6.png" />
                        <div class="cove">
                            <p>pci6</p>
                            <p>Picture info 6</p>
                        </div>
                </li>
            </ul>
        </div>
        <script src="../jquery.min.js"></script>
        <script src="hoverdir.js"></script>
        <script>
            $("#wrap ul li").hoverdir();
        </script>
        </body>
    </html>

    不多说,可以通过需求拓展功能。

  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/xueweijie/p/7920362.html
Copyright © 2020-2023  润新知