html - 在 img 悬停时显示文本

标签 html css

我正在尝试在图像悬停时显示文本。 它适用于 div 悬停,但我只希望在图像悬停时使用它,而这似乎并没有发生。 以下是我的代码片段..

$(document).ready(function(){
  
  $(".navbar-links").click(function(){
    //alert("hi1");
    $(".navbar-links").removeClass("active");
    $(this).addClass("active");
  });
  
  var portfolio_offset = $("#portfolio-section").offset().top;
  
  var about_offset = $("#about-section").offset().top;
  
  var contact_offset = $("#contact-section").offset().top;
  
  $(window).scroll(function(){
    //alert(about_offset);
    //alert(portfolio_offset);
    //alert(contact_offset);
    $(".navbar-links").removeClass("active");
    var scrolled_offset = $(this).scrollTop();
    if(scrolled_offset>=contact_offset-1)
      {
        $("#contact_link").addClass("active");
      }
    else if(scrolled_offset>=portfolio_offset)
      {
        //alert(scrolled_offset);
        $("#portfolio_link").addClass("active");
        //$("#contact_link").removeClass("active");
      }
    else
      {
        $("#about_link").addClass("active");
        //$("#contact_link").removeClass("active");
      }
  });
  
  $("button").click(function(){
    window.open($(this).val(),"_blank"); 
  });
  
});
button {
  background : transparent;
  border : 1px solid white;
  padding : 0px;
  margin : 10px;
}

i {
  border : 0px;
}

#about-section {
  background-color : #fd746c;
  color : black;
}

#portfolio-section {
  background-color : #904e95;
  color : black;
}

#contact-section {
  background-color : #4ca1af;
  color : black;
}

.active {
  border : 1px solid white;
}

#navbar-menu {
  text-align : center;
}

.heading {
  font-family : Sofia;
}

.navbar {
  background-color : black;
}

.content {
  font-family : Lily Script One;
}

.navbar-brand {
  font-size : 27px;
}

.content-div {
  text-align : center;
  display : inline-block;
  vertical-align : middle;
  float : none;
}

.navbar-links {
  font-size : 20px;
}

.center {
  text-align : center;
}

img {
  border : 1px solid black;
  margin : auto;
  top : 0;
  left : 0;
  right : 0;
  bottom : 0;
  box-shadow : 10px 10px 20px black;
}

.project-img {
  max-width : 70%;
  max-height : 70%;
}

.fa {
  padding : 20px;
  font-size : 45px;
  width : 100px;
  text-align : center;
  text-decoration : none;
  background : #2c4762;
  color: white;
  margin : 0px 0px;
  border : 1px solid white;
}

.fa:hover {
    opacity : 0.7;
}

#proj_img_1{
  position : relative;
  text-align : center;
}

#img_desc {
  position : absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background : grey;
  color : black;
  visibility : hidden;
  opacity : 0;
  transition : opacity .5s, visibility .5s;
}

#proj_img_1:hover #img_desc {
  visibility : visible;
  opacity : 1;
}
<nav class="navbar navbar-inverse navbar-fixed-top">
  <div class="container-fluid">
    <div class="row" id="navbar-section">
      <div class="col-md-offset-1 col-md-10 col-sm-offset-1 col-sm-10">
        <div class="navbar-header heading">
          <button class="navbar-toggle" data-toggle="collapse" data-target="#navbar-menu"><span class="glyphicon glyphicon-triangle-bottom"></span></button>
          <a href="#" class="navbar-brand">Portfolio Page</a>
        </div>
        <div id="navbar-menu" class="collapse navbar-collapse">
          <ul class="nav navbar-nav navbar-right heading">
            <li class="navbar-links active" id="about_link"><a href="#about-section">About</a><li>
            <li class="navbar-links" id="portfolio_link"><a href="#portfolio-section">Portfolio</a><li>
            <li class="navbar-links" id="contact_link"><a href="#contact-section">Contact</a><li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</nav>
<div class="container-fluid" id="scrollable-div">
  <div class="row" id="about-section">
    <br>
    <br>
    <div class="center heading">
      <h1>About</h1>
    </div>
    <div class="col-md-offset-1 col-md-10 col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10">
      <div class="row">
        <div class="col-md-offset-1 col-md-6 col-sm-offset-1 col-sm-6 col-xs-offset-1 col-xs-10 content-div content">
          <h3>Rishabh Kashyap</h3>
          <h3>Full Stack Web Developer</h3>
          <h3>Key Interests - JavaScript & MEAN Stack</h3>
          <h3>Worked as an intern @ Sapient Global Markets</h3>
          <h4><i>"Never be afraid to take risks. If you succeed, you can lead and if you fail, you can guide."</i><h4>
          <h4>- Swami Vivekananda</h4>
          <h3>Indeed. The motto, I try to live by. Professionally, as well as, Personally.</h3>
        </div>
        <div class="col-md-4 col-sm-4 col-xs-12 content-div">
          <img class="img-responsive project-img" alt="my image" src="https://lh3.googleusercontent.com/34CJNU0DexpintEhsM5-zcZdT_7mRWVA6dE-7f122WM3xj4xFI0nXYQhXyEG8tyrd4piHPHPGtCNtu_o5vqZ2eFFH2W9YS4ekKCqw7wgZzAjsKD8hdNoV5DrARz7I-BRljjksmdfHxoHaGIgwxcNYRJkEBa2FLIhbluVGZo1qN3zZ1ZJ1WpRU27mBbrCScNzazuOFtY0lOBX4JAKd7yGlC7ILwg4gAy-KsN-ZJz54PoNeCblgrz3jGsF8YvEf5Hc-V3kV8DtrDiKiwTpXPowvrLdldS-rIlOpjq1LrbPVNxWUNB1YieiqOUo1AEVYaS9WxiIFae2etL7Jb4nAW9MkLHE-YvQZ4VVcntRfXS3CBnuoy6EPHu2vfevnNeK9lgANs4rb1MNyMCxOACWmn45_vZKZoPfnmk_cyVzt7m2vFZUXPMdyeSRrViQD9VteriL89XHZlItrlgIhXI1vt5JAASHdOYrNV3CTpWMGPfzQk0BfQbbr2qcxnbgbSyEmK4M1wIloFQ0O_q-MCOdffySKCmct8iHRRrAcG5cWF_ArcX5GptL3tHAQHu9UCyfrjwIyI28NbrgZM0NkxxmpRAV5nRJGQetgxewxGaS2A6xfWnlW8jP-P4z=w479-h638-no?.jpg"/>
        </div>
      </div>
    </div>
  </div>
  <div class="row" id="portfolio-section">
    <br>
    <br>
    <div class="center heading">
      <h1>Portfolio</h1>
    </div>
    <div id="proj_img_div" class="col-md-offset-1 col-md-10 col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10">
      <img id="proj_img_1" class="img-responsive project-img" alt="portfolio page" src="http://www.thefamouspeople.com/profiles/images/swami-vivekananda-3.jpg"/>
      <h4 id="img_desc"><i>A tribute page to Swami Vivekananda using basic HTML & Bootstrap.</i></h4>
    </div>
  </div>
  <div class="row" id="contact-section">
    <br>
    <br>
    <div class="center heading">
      <h1>Contact Me</h1>
    </div>
    <div class="col-md-offset-1 col-md-10 col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10">
      <div class="center content">
        <h4><i>rishabhkashyap.rk@gmail.com</i></h4>
      </div>
      <br>
      <div class="center">
        <button value="https://www.facebook.com/rishabh.kashyap.940436"><i class="fa fa-facebook"></i></button>
        <button value="https://twitter.com/iamrkcheers"><i class="fa fa-twitter"></i></button>
        <button value="https://github.com/iamrkcheers"><i class="fa fa-github"></i></button>
        <button value="https://www.freecodecamp.com/iamrkcheers"><i class="fa fa-free-code-camp"></i></button>
        <button value="https://www.linkedin.com/in/rishabh-kashyap-735879117/"><i class="fa fa-linkedin"></i></button>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
      </div>
    </div>
  </div>
  <div class="row" id="meta-section">
    <div class="col-md-offset-1 col-md-10 col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10">
    </div>
  </div>
</div>

以下是我的工作代码.. https://codepen.io/iamrkcheers/pen/KmxEpw

感谢任何帮助。谢谢。

此外,我希望文本仅显示在图像的顶部,而它出现在整个 div 的顶部。 如何实现?

谢谢。

最佳答案

你的 CSS #proj_img_1:hover #img_desc 中的这个选择器说“当我将鼠标悬停在 #proj_img_1 上时,应用一些东西到我的 child #img_desc”。

但是,#img_desc#proj_img_1 的 sibling ,而不是 child 。

改用#proj_img_1:hover + #img_desc

+ 用于相邻的 sibling ,所以它说“当我将鼠标悬停在 #proj_img_1 上时,应用一些东西到我的下一个 sibling #img_desc ".

关于html - 在 img 悬停时显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44204613/

相关文章:

html - 如何在 Bootstrap 中将列包装在较短的列下

jquery - 我想使用鼠标位置垂直滚动图像

html - 如何在菜单的列中显示几个选项

javascript - 如何防止背景图像在更改时闪烁

javascript - 如何使所有选择的元素加宽 15px?

html - CSS 图像 :after not working on Coppermine

html - 将 div 的底部固定到屏幕底部

html - 主要内容区域未对齐

html - 如何在显示 :table-cell have 100% height 中创建一个元素

html - ul 内的 div 在 IE7 中导致问题