【问题标题】:How to show a banner div on mouseover?如何在鼠标悬停时显示横幅 div?
【发布时间】:2014-04-23 11:07:38
【问题描述】:

Demo

正如您在演示中看到的那样,我在点击链接时显示了一个横幅。除了显示和隐藏我的横幅 div,我还想在鼠标悬停时显示我的横幅(如下拉菜单),以便在用户点击链接之前向他们展示那里的内容。

HTML:

<a href="" class="show_hide">One</a>

<div class="slidingDiv" >
    <img src="http://www.freedigitalphotos.net/images/images/home/spring.jpg" />
</div>

jQuery:

 $(document).ready(function() {

     $(".slidingDiv").hide();
     $(".show_hide").show();

     $('.show_hide').click(function () {
         $(".slidingDiv").slideToggle();
         return false;
     });

 });

【问题讨论】:

    标签: javascript jquery html banner


    【解决方案1】:
    $(document).ready(function () {
    
         $(".slidingDiv").hide();
         $(".show_hide").show();
    
         $('.show_hide').on('mouseover',function () {
             $(".slidingDiv").show();
         });
         $('.show_hide').on('mouseleave',function () {
             $(".slidingDiv").hide();
         });
    });
    

    【讨论】:

      【解决方案2】:

      我用 jQuery Animate 做了一个例子。

      HTML

          <a id="myLink" href="#">One</a>
      
          <div id="slidingDiv">
              <img src="http://dummyimage.com/100x100/000/fff" />
          </div>
      

      CSS

      #slidingDiv img{
         margin: 0 0 0 0;
         position: absolute;
         height: 0px;
         width: 100px;
         opacity: 0;
         -webkit-transition: all 0.5s ease;
         -moz-transition: all 0.5s ease;
         -o-transition: all 0.5s ease;
         transition: all 0.5s ease;
       }
      

      jQuery 1.10.1

          var toggleDiv = function( selector, height, width, marginBottom, opacity, time ){
                  $(selector)
                      .removeAttr('style')
                      .stop().animate({
                          'height': height,
                          'width': width,
                          'marginBottom': marginBottom, 
                          'opacity': opacity 
                      }, time, 'swing', function(){ console.log('Done!!'); } );
                  };
      
          $(document).ready(function () {
      
              var myImg = $( 'img', '#slidingDiv' ),
                  myLink = $( '#myLink' );
      
              $( myImg ).hide();
              $( myLink )
                  .on('mouseenter', function(){ toggleDiv( myImg, '100px', '100px', '30px', 1, 10 ) })
                  .on('mouseleave', function() { toggleDiv( myImg, '0px', '100px', '0px', 0, 10 ) });
           });  
      

      点击here

      【讨论】:

        【解决方案3】:

        要让它显示like下拉列表,请将position:absolute 添加到.slidingDiv

        .slidingDiv {
            margin-bottom:30px;
            position:absolute;
        }
        

        并将.click 更改为.hover

        查看示例HERE

        【讨论】:

          【解决方案4】:

          只需使用hover 而不是click

           $('.show_hide').hover(function () {
               $(".slidingDiv").slideToggle();
               return false;
           });
          

          【讨论】:

            【解决方案5】:

            click 更改为 hover 即可。

            $('.show_hide').hover(function () {
                 $(".slidingDiv").slideToggle();
                 return false;
            });
            

            JSFiddle

            【讨论】:

            • 但这会影响下面的内容..有没有办法像下拉菜单一样显示
            • 我不确定你的意思。从您提出问题的方式来看,这为您所要求的提供了一个解决方案 - 它在鼠标悬停时显示横幅。
            • @Ishan:谢谢..这就是我想要的:)
            • 好的,我认为您要求同时绑定“单击”和“悬停”两个事件处理程序。请查看这个小提琴jsfiddle.net/g39mc/14。但这不是一个好方法,因为当您单击该项目时,您已经将其悬停。
            【解决方案6】:

            更新了你的小提琴

            Updated JSFIDDLE

             $(document).ready(function () {
            
                 $(".slidingDiv").hide();
                 $(".show_hide").show();
            
                 $('.show_hide').on('mouseover',function () {
                     $(".slidingDiv").slideToggle();
                     return false;
                 });
            
             });
            

            【讨论】:

              【解决方案7】:

              这是最好的方法:

              $(document).ready(function () {
              
                   $(".slidingDiv").hide();
                   $(".show_hide").show();
              
                   $('.show_hide').on('mouseover mouseout',function () {
                       $(".slidingDiv").slideToggle();
              
                   });
              
               });
              

              FIDDLE DEMO

              【讨论】:

                【解决方案8】:

                试试这个 JS

                 $(function(){
                      $(".slidingDiv").hide();
                         $(".show_hide").show();
                
                         $('.show_hide').hover(function () {
                             $(".slidingDiv").slideToggle();
                
                         });
                    });
                

                并将其添加到您的CSS

                .slidingDiv {
                    margin-bottom:30px;
                    position:absolute;
                }
                .show_hide {
                    display:none;
                }
                

                DEMO HERE

                【讨论】:

                  【解决方案9】:

                  只需使用悬停

                  $('.show_hide').hover(function () {
                   $(".slidingDiv").slideToggle();
                   return false;
                  });
                  

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2023-04-10
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多