首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery单击“显示鼠标隐藏侧栏”

Jquery单击“显示鼠标隐藏侧栏”
EN

Stack Overflow用户
提问于 2015-01-17 05:32:30
回答 4查看 607关注 0票数 0

嗨,我需要一些这个脚本,我设法用鼠标显示面板,但是我想当我的鼠标离开面板时,它会关闭它,这是示例http://jsfiddle.net/jikey/w9s7pt25/

代码语言:javascript
运行
复制
$(function(){
    $('.slider-arrow').click(function(){
        if($(this).hasClass('show'))
        {
            $( ".slider-arrow, .spanel" ).animate({
                right: "+=182"
            }, 700, function() {
                // Animation complete.
            });
            $(this).html('<img src="images/sideclose.png" />').removeClass('show').addClass('hide');
        }
        else 
        {      
            $( ".slider-arrow, .spanel" ).animate({
                right: "-=182"
            }, 700, function() {
                // Animation complete.
            });
            $(this).html('<img src="images/sideopen.png" />').removeClass('hide').addClass('show');    
        }
    });
});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-01-17 06:48:59

在这里,您需要编写两个方法。

jQuery click在单击箭头时显示该节,jQuery onmouseleave在退出该节时隐藏该节。

我建议您以(背景样式) slideopen.png CSS显示与类相关的slideclose.png和文件。

方法1:on click

jQuery代码:

代码语言:javascript
运行
复制
$('.slider-arrow').on("click", function(){
       if($(this).hasClass('show')){
        $( ".slider-arrow, .panel" ).animate({
          right: "+=300"
          }, 700, function() {
            // Animation complete.
          });     $(this).html('&laquo;').removeClass('show').addClass('hide');
        }
});

方法2:on mouse leave

jQuery代码:

代码语言:javascript
运行
复制
$(".panel").on("mouseleave", function(){
        if(!$('.slider-arrow.show').hasClass('show')) {
        $( ".slider-arrow, .panel" ).animate({
          right: "-=300"
          }, 700, function() {
            // Animation complete.
          });

          $(".slider-arrow").removeClass('hide').addClass('show');   
        }
 });

演示链接:http://jsfiddle.net/w9s7pt25/7/

票数 0
EN

Stack Overflow用户

发布于 2015-01-17 06:17:09

您可以做的是添加一个分离的mouseout函数,如本小提琴所示。您的代码的问题是,mouseover事件只在.slider-arrow上运行一次,将类更改为hide,然后期望另一个mouseover读取它需要隐藏的内容。

代码语言:javascript
运行
复制
$(function () {
    $('.slider-arrow').mouseover(function () {
        if ($(this).hasClass('show')) {
            $(".slider-arrow, .panel").animate({
                right: "+=300"
            }, 700, function () {
                // Animation complete.
            });
            $(this).html('&laquo;').removeClass('show').addClass('hide');
        }

    });

    $('.panel').mouseout(function () {
        if ($('.slider-arrow').hasClass('hide')) {
            $(".slider-arrow, .panel").animate({
                right: "-=300"
            }, 700, function () {
                // Animation complete.
            });
            $('.slider-arrow').html('&raquo;').removeClass('hide').addClass('show');
        }
    });
});

希望这有意义。

票数 0
EN

Stack Overflow用户

发布于 2015-01-17 06:26:17

您可以使用mouseoutmouseleave。我想您会在panel中添加一些元素。因此,mouseout在指针移出子元素时触发,而mouseleave只在指针移出绑定元素时触发。

代码语言:javascript
运行
复制
 $('.panel').mouseleave(function() {   
     if($('.slider-arrow').hasClass('hide')){
         $( ".slider-arrow, .panel" ).animate({
            right: "-=300"
         }, 700);
         $('.slider-arrow').html('&raquo').removeClass('hide').addClass('show');     
     }
   });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27996502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档