jquery - 如何删除悬停音频播放和标题

标签 jquery html audio fancybox lightbox

我编写了一个花式框代码,以在灯箱 View 上显示带有图像标题和音频的画廊。但是标题和音频仅在我们将灯箱图像悬停时才会显示。我希望(标题和音频)都应正常显示。
这是我的代码:

$(document).ready(function() {
  $('.fancybox').fancybox({
    helpers: {
      title: {
        type: 'over'
      }
    },
    afterShow: function(index) {
      var currentItem = $('.thumbnail').eq(this.index);
      var audioHtml = currentItem.attr('audio-html');
      $(".fancybox-title").hide();
      $(".fancybox-wrap").hover(function() {
        $(".fancybox-title").stop(true, true).slideDown(200);

        var toolbar = $("<div/>").addClass("audiofile");

        toolbar.html(audioHtml);
        $(".fancybox-title").after(toolbar);

      }, function() {
        $(".fancybox-title").stop(true, true).slideUp(200);
        $(".audiofile").remove();
      });
    }
  });
});
.gallery {
  display: inline-block;
  margin-top: 20px;
}

.fancybox-opened .fancybox-title {
  background: #fff;
  color: #000;
  border: 18px solid #000;
  width: 100%;
  margin-bottom: 98px;
}

.audiofile {
  border: 10px solid #000;
  padding: 14px;
  position: relative;;
  top: -98px;
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css" media="screen">
<script src="//cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.js"></script>

<div class="container">
  <div class="row">
    <div class='list-group gallery'>
      <div class='col-sm-4 col-xs-6 col-md-3 col-lg-3'>
        <a class="thumbnail fancybox" rel="ligthbox" href="http://placehold.it/1300x1000.png" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi molestie arcu ut augue mattis mollis. Praesent laoreet lobortis neque. Duis sed gravida dolor. " audio-html="<audio autoplay='autoplay' controls='controls'><source src='https://archive.org/download/melody2007/bandazouklouw-sonholindo.mp3'/></audio>">
          <img class="img-responsive" alt="" src="http://placehold.it/320x320" />
          <div class='text-right'>
            <small class='text-muted'>Image Title</small>
          </div>
          <!-- text-right / end -->
        </a>
      </div>
      <!-- col-6 / end -->
      <div class='col-sm-4 col-xs-6 col-md-3 col-lg-3'>
        <a class="thumbnail fancybox" rel="ligthbox" href="http://placehold.it/1300x1000.png" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi molestie arcu ut augue mattis mollis. Praesent laoreet lobortis neque. Duis sed gravida dolor. " audio-html="<audio autoplay='autoplay' controls='controls'><source src='https://archive.org/download/melody2007/brunoetrio-rubi.mp3'/></audio>">
          <img class="img-responsive" alt="" src="http://placehold.it/320x320" />
          <div class='text-right'>
            <small class='text-muted'>Image Title</small>
          </div>
          <!-- text-right / end -->
        </a>
      </div>
      <!-- col-6 / end -->
      <div class='col-sm-4 col-xs-6 col-md-3 col-lg-3'>
        <a class="thumbnail fancybox" rel="ligthbox" href="http://placehold.it/1300x1000.png" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi molestie arcu ut augue mattis mollis. Praesent laoreet lobortis neque. Duis sed gravida dolor. " audio-html="<audio autoplay='autoplay' controls='controls'><source src='https://archive.org/download/melody2007/bandaamorperfeito-aovivo-01-lovelouco.mp3'/></audio>">
          <img class="img-responsive" alt="" src="http://placehold.it/320x320" />
          <div class='text-right'>
            <small class='text-muted'>Image Title</small>
          </div>
          <!-- text-right / end -->
        </a>
      </div>
      <!-- col-6 / end -->
    </div>
    <!-- list-group / end -->
  </div>
  <!-- row / end -->
</div>
<!-- container / end -->

最佳答案

你想要这样的东西吗? See this fiddle

我在fancybox函数中删除了您的悬停事件:

$(document).ready(function() {
  $('.fancybox').fancybox({
    helpers: {
      title: {
        type: 'over'
      }
    },
    afterShow: function(index) {
      var currentItem = $('.thumbnail').eq(this.index);
      var audioHtml = currentItem.attr('audio-html');
      $(".fancybox-title").hide();

      $(".fancybox-title").stop(true, true).slideDown(200);

      var toolbar = $("<div/>").addClass("audiofile");

      toolbar.html(audioHtml);
      $(".fancybox-title").after(toolbar);
    }
  });
});

我还将其添加到CSS中以修改fancybox上一个和下一个按钮的位置:
.fancybox-next { right: -45px !important; }
.fancybox-prev { left: -45px !important; }

关于jquery - 如何删除悬停音频播放和标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36174439/

相关文章:

javascript - 回调函数——括号的使用

jquery - 我可以使用 jQuery 来定位 HTML 中的文本字符串吗?

javascript - 删除数据表中的特定行时出现问题

html - CSS 类不起作用

html - 带有换行文本的 flexbox 元素之间的间距相等

actionscript-3 - 为什么不播放此嵌入式声音文件?

c++ - 无法使用PlaySound在c++中播放音频文件

node.js - 如何使用Node.js在本地主机上播放IBM Watson Text To Speech音频

jquery - 使用 jQuery 将 div 的文本与 html 中的任何输入文本框匹配

javascript - 我想通过使用多个显示和隐藏它们的 div 来制作一个多部分表单