【问题标题】:Responsive custom expanding preview响应式自定义扩展预览
【发布时间】:2023-03-25 10:33:01
【问题描述】:

我正在尝试构建像 http://tympanus.net/Tutorials/ThumbnailGridExpandingPreview/ 这样的扩展预览。

但我需要根据我的要求对其进行自定义。

请查看this fiddle

我面临的问题是:

  1. 指针未正确指向图像。 (它指向但隐藏在盒子后面)
  2. 点击第一张图片时,右侧的所有元素都会向下移动。

除此之外,我还想问一下,我们可以将所有 8 个圆形 div 放在一行中吗?

谢谢。

jQuery(document).ready(function() {
  $(".mn").click(function() {
    var activeTab = $(this).attr("href"); //Find the target via the href
    if ($(activeTab).is(':visible')) {
      $(activeTab).slideUp();
      $(this).removeClass("active");
    } else {
      $(".mn").removeClass("active"); //Remove any "active" class
      $(this).addClass("active")
      $('.tab').hide();
      $(activeTab).fadeIn();
    }
    return false;
  });
});
.wrap {
  max-width: 100%;
  margin: auto;
}

.mn.active:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -12px;
  margin: 0 0 0 -6px;
  /*width: 0;*/
  /*height: 0;*/
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-bottom: 12px solid red;
}

.img-circle {
  border-radius: 50%;
}

.img-circle {
  border-radius: 0;
}

.ratio {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: auto;
  height: 0;
  padding-bottom: 100%;
  position: relative;
  width: 100%;
}

.img-circle {
  border-radius: 50%;
}

.img-responsive {
  display: block;
  height: auto;
  max-width: 100%;
}

.mn.active,
.mn:focus {
  background: #f9f9f9;
  outline: none
}

.tab {
  display: none;
  clear: both;
  margin: 0 2% 10px 0;
  background: red;
  min-height: 100px;
  width: 100%;
  padding: 5px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div class="wrap">

  <div class="col-sm-2">
    <a href="#tab1" class="mn">
      <div class="ratio img-responsive img-circle" style="background-image: url(/img/analytics.png); background-color: #FFC107;"></div>
      <div class="text-center">1</div>
    </a>
  </div>
  <div id="tab1" class="tab">Tab 1</div>

  <div class="col-sm-2">
    <a href="#tab2" class="mn">
      <div class="ratio img-responsive img-circle" style="background-image: url(/img/analytics.png); background-color: #FFC107;"></div>
      <div class="text-center">2</div>
    </a>
  </div>
  <div id="tab2" class="tab">Tab 2</div>

  <div class="col-sm-2">
    <a href="#tab3" class="mn">
      <div class="ratio img-responsive img-circle" style="background-image: url(/img/analytics.png); background-color: #FFC107;"></div>
      <div class="text-center">3</div>
    </a>
  </div>
  <div id="tab3" class="tab">Tab 3</div>

  <div class="col-sm-2">
    <a href="#tab4" class="mn">
      <div class="ratio img-responsive img-circle" style="background-image: url(/img/analytics.png); background-color: #FFC107;"></div>
      <div class="text-center">4</div>
    </a>
  </div>
  <div id="tab4" class="tab">Tab 4</div>

  <div class="col-sm-2">
    <a href="#tab5" class="mn">
      <div class="ratio img-responsive img-circle" style="background-image: url(/img/analytics.png); background-color: #FFC107;"></div>
      <div class="text-center">5</div>
    </a>
  </div>
  <div id="tab5" class="tab">Tab 5</div>

  <div class="col-sm-2">
    <a href="#tab6" class="mn">
      <div class="ratio img-responsive img-circle" style="background-image: url(/img/analytics.png); background-color: #FFC107;"></div>
      <div class="text-center">6</div>
    </a>
  </div>
  <div id="tab6" class="tab">Tab 6</div>

  <div class="col-sm-2">
    <a href="#tab7" class="mn">
      <div class="ratio img-responsive img-circle" style="background-image: url(/img/analytics.png); background-color: #FFC107;"></div>
      <div class="text-center">7</div>
    </a>
  </div>
  <div id="tab7" class="tab">Tab 7</div>

  <div class="col-sm-2">
    <a href="#tab8" class="mn">
      <div class="ratio img-responsive img-circle" style="background-image: url(/img/analytics.png); background-color: #FFC107;"></div>
      <div class="text-center">8</div>
    </a>
  </div>
  <div id="tab8" class="tab">Tab 8</div>
</div>

【问题讨论】:

  • col-sm-2 div 放在行内是否可以接受?然后,您可以使用 100% 宽度的额外行来存储所有选项卡。
  • 关于您的最后一个问题:“我们可以将所有 8 个圆形 div 放在一行中吗?”您可以使用 col-sm-1 而不是 col-sm-2 在一行上存储 8 个 div,但它不会 100% 延伸。您可以创建使用 8 列而不是 12 列的引导程序的修改版本。您可以在此处执行此操作:getbootstrap.com/customize。只需将@grid-columns 设置更改为 8。

标签: javascript html css twitter-bootstrap-3


【解决方案1】:

请检查这个小提琴:https://jsfiddle.net/LyL8vkmr/4/

我将每个 col-sm-2 放在 &lt;div class="row"&gt;&lt;/div&gt; 中,并将所有选项卡放在单独的 &lt;div class="row"&gt;&lt;/div&gt; 中。现在,当您单击一个圆圈时,它会在其下方的行中打开一个选项卡并推动下一行中的所有圆圈。但是它仍然不能完美地工作,因为当您将其调整为小尺寸并单击一个圆圈时,该选项卡会在该行的最底部打开,您无法轻松看到它。

还请注意,我将 col-sm-2 更改为 col-sm-1,因为您说您想要连续 8 个 div。唯一的问题是它不能 100% 延伸。如果您希望 8 列一直延伸,那么您需要使用自定义版本的引导程序。 Just go here 并在 @grid-columns 字段中输入 8。

【讨论】:

  • 感谢@Andrew 的解决方案。
  • 但是@Andrew 这个设计没有响应性。当我尝试在移动设备中打开它时,扩展预览显示在最后。有什么解决办法吗?
猜你喜欢
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多