首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有在jquery需要时才隐藏和显示文本

只有在jquery需要时才隐藏和显示文本
EN

Stack Overflow用户
提问于 2016-12-27 05:26:42
回答 3查看 153关注 0票数 4

我有一个链接和一些短信。每当我悬停在链接上时,文本应该以1200秒的时间间隔显示,当我从链接中移除光标时,应该立即隐藏文本。所以,根据我所写的,每当我悬停在链接上的时候,文本在1200秒后就会显示出来,在文本显示之后,当我从链接中移除光标时,文本就会被隐藏起来,这很好。但是,每当我将光标保持在链接上并在文本显示之前从链接中移除光标时,文本仍在显示,这是我不想显示的。当我从链接中移除光标时,应该立即隐藏文本。

有没有办法这么做。我已经提供了我在下面写的代码:请看一看,谢谢:)

代码语言:javascript
复制
$('a').hover(function(){
    setTimeout(function(){
    $('.show-hide').css("visibility", "visible")}, 1200);
}, 
function(){
     $('.show-hide').css("visibility", "hidden");
});
代码语言:javascript
复制
.show-hide{
  visibility : hidden;
  }
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#"><p> Hover here </p></a>


<p class="show-hide"> This should be shown when hovered </p>

<p class="show-hide"> This should be shown when hovered </p>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-27 05:31:53

之所以发生这种情况,是因为show()函数在鼠标悬停时执行,即使在1.2秒前离开鼠标时,也没有阻止它,延迟完成后,它将显示文本。

您需要在hide()时执行mouseleave。这样,它将停止show()函数。试试下面的片段:

代码语言:javascript
复制
$(document).ready(function(){
  $('.show-hide').hide();
  //This is for showing the text with delay 1.2 sec
  $('a').mouseenter(function(){
    $('.show-hide').show(1200);
  });
  //This is for hiding the text with no delay
  $('a').mouseleave(function(){
    $('.show-hide').hide();
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#"><p>Hover here</p></a>

<p class="show-hide"> This should be shown when hovered </p>
<p class="show-hide"> This should be shown when hovered </p>

票数 8
EN

Stack Overflow用户

发布于 2016-12-27 05:55:51

您可以使用正常的css转换来实现这一效果。试着用这段代码

代码语言:javascript
复制
a:hover ~ .show-hide{
        visibility:visible;
        tranistion:all ease-out;
        transition-delay:1.2s;
    }
    .show-hide{
      visibility:hidden;
     }
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#"><p> Hover here </p></a>
    
    
    <p class="show-hide"> This should be shown when hovered </p>
    
    <p class="show-hide"> This should be shown when hovered </p>

票数 1
EN

Stack Overflow用户

发布于 2016-12-27 05:34:17

你能看看这个吗。我只是拿了一面旗子来保持能见度。

代码语言:javascript
复制
var isDivShow = "";
$('a').hover(function(){
    isDivShow = "visible";
    setTimeout(function(){
    $('.show-hide').css("visibility", isDivShow)}, 1200);
}, 
function(){
  isDivShow = "hidden";
   $('.show-hide').css("visibility", isDivShow);
});

.show-hide{
  visibility : hidden;
  }
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#"><p> Hover here </p></a>


<p class="show-hide"> This should be shown when hovered </p>

<p class="show-hide"> This should be shown when hovered </p>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41339479

复制
相关文章

相似问题

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