javascript - 流体图像翻转 Twitter Bootstrap Rails

标签 javascript html css twitter-bootstrap-rails

我已经开始为我正在处理的 Rails 应用程序创建翻转图像效果。我正在使用 twitter-bootstrap-rails gem 来使应用程序在各种设备上看起来都很好。我当前实现的问题是,当调整浏览器大小时,图像不再调整为浏览器的宽度,并且翻转效果会超出图像的边界。我认为问题源于 .photo 类,但我不确定如何解决它或者是否有更好的方法来实现我想要的结果?

HTML

<% @photos.each do |photo| %>
<div class="photo row">
  <div class="span8 photo"><%= image_tag photo.image_url(:large).to_s %></div>
  <div class="span4 hover">
    <div class="bg"></div>
    <div class="description">
      <h4><%= link_to photo.title, photo_path(photo) %></h4>
      <hr>
      <p><%= raw photo.tag_list.map { |t| link_to t, tag_path(t)}.join(' ') %></p>
    </div>
  </div>
</div>
<% end %>

CSS:

 .photo {
    position: relative;
    width: 770px;
  }

  .photo .hover {
    position: absolute;;
    height: 90.4%;
    left: 3.09%;
    top: 4.8%;
    width: 93.82%;
    display: none;
  }

  .photo .hover .bg {
    z-index: 1;
    position: absolute;
    height: 100%;
    width: 100%;
    background: #FFF;
    -webkit-opacity: 0.8;
    -moz-opacity: 0.8;
    filter:alpha(opacity=80);
    opacity: 0.8;
  }

  .photo .hover .description {
    position: relative;
    text-align: center;
    top: 40%;
    z-index: 2;
  }

JS

jQuery(document).ready(function($) {


  $(".photo").mouseenter(function () {
      $(this).find('.hover').fadeIn(300);
  }).mouseleave(function (){ 
    $(this).find('.hover').stop(true, true).fadeOut(300);
  });

}); /* End Dom Ready */

最佳答案

Bootstrap 使用媒体查询来调整 span8 的大小。因此,我们需要重新排列 html 以将悬停元素包含在 span8 中,然后使用百分比作为尺寸以保持相对于照片的纵横比。

HTML

<% @photos.each do |photo| %>
<div class="row">
  <div class="span8 photo">
    <%= image_tag photo.image_url.to_s %>
    <div class="hover">
      <div class="bg"></div>
      <div class="description">
        <h4><%= link_to photo.title, photo_path(photo) %></h4>
        <hr>
        <p><%= raw photo.tag_list.map { |t| link_to t, tag_path(t)}.join(' ') %></p>
      </div>
    </div>
  </div> 
</div>
<% end %>

CSS

.photo {
  position: relative;
}

.photo .hover {
  position: absolute;
  height: 90%;
  width: 94%;
  top: 0;
  left: 0;
  padding: 3%;
  display: none;
}

.photo .hover .bg {
  z-index: 1;
  position: relative;
  height: 100%;
  width: 100%;
  background: #FFF;
  -webkit-opacity: 0.8;
  -moz-opacity: 0.8;
  filter:alpha(opacity=80);
  opacity: 0.8;
}

.photo .hover .description {
  position: absolute;
  text-align: center;
  top: 40%;
  width: 94%;
  height: 90%;
  z-index: 2;
}

关于javascript - 流体图像翻转 Twitter Bootstrap Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089543/

相关文章:

html - 如果我们在 html 和 css 代码中应用一些属性,哪个将首先应用,哪个将最终应用

css - 在 CSS 动画中使用比例

javascript - 如何将 Bootstrap 列高度与纯 jQuery 相匹配?

html - 将一个宽度未知的 div 居中,同时在内部保持左对齐

javascript - 相对 URL 作为 Nock 中的主机名

javascript - TypeScript - 类型 'id' 上不存在属性 'Node'

javascript - 为什么 console.log() 和alert() 函数实际上并不是 Javascript 的一部分?

html - CSS - 非 IE 浏览器支持 "filter"属性吗?

javascript - 如何在 MySQL 值更改时播放声音

javascript - 如何在 Bootstrap 中垂直对齐输入元素?