Position thumbnails on bottom with Fancybox

丶灬走出姿态 提交于 2020-06-17 05:35:41

问题


I'm trying to get the thumbnails to display horizontally on the bottom using the latest Fancybox. While this example works, it's not working for me.

I also tried the same example code from codepen on jsfiddle and it's not working, with the same issue I'm having. It just goes to the top left. The "top" CSS does not seem to have any effect with the thumbnails.

What's going wrong?

$('[data-fancybox="images"]').fancybox({
  thumbs: {
    autoStart: true,
    axis: 'x'
  }
})
.fancybox-thumbs {
  top: auto;
  width: auto;
  bottom: 0;
  left: 0;
  right: 0;
  height: 95px;
  padding: 10px 10px 5px 10px;
  box-sizing: border-box;
  background: rgba(0, 0, 0, 0.3);
}

.fancybox-show-thumbs .fancybox-inner {
  right: 0;
  bottom: 95px;
}
<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>

<h2>fancyBox v3.3 - Thumbnails at the bottom</h2>
<hr class="my-5" />
<p class="imglist">
  <a href="https://source.unsplash.com/juHayWuaaoQ/1500x1000" data-fancybox="images">
    <img src="https://source.unsplash.com/juHayWuaaoQ/240x160" />
  </a>
  <a href="https://source.unsplash.com/eWFdaPRFjwE/1500x1000" data-fancybox="images">
    <img src="https://source.unsplash.com/eWFdaPRFjwE/240x160" />
  </a>
  <a href="https://source.unsplash.com/i2KibvLYjqk/1500x1000" data-fancybox="images">
    <img src="https://source.unsplash.com/i2KibvLYjqk/240x160" />
  </a>
  <a href="https://source.unsplash.com/RFgO9B_OR4g/1500x1000" data-fancybox="images">
    <img src="https://source.unsplash.com/RFgO9B_OR4g/240x160" />
  </a>
  <a href="https://source.unsplash.com/7bwQXzbF6KE/1500x1000" data-fancybox="images">
    <img src="https://source.unsplash.com/7bwQXzbF6KE/240x160" />
  </a>
  <a href="https://source.unsplash.com/NhU0nUR7920/1500x1000" data-fancybox="images">
    <img src="https://source.unsplash.com/NhU0nUR7920/240x160" />
  </a>
  <a href="https://source.unsplash.com/ndjyaOp0fOc/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/ndjyaOp0fOc/240x160" />
  </a>
  <a href="https://source.unsplash.com/A-fubu9QJxE/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/A-fubu9QJxE/240x160" />
  </a>
  <a href="https://source.unsplash.com/rkkr6-2I4sg/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/rkkr6-2I4sg/240x160" />
  </a>
  <a href="https://source.unsplash.com/mr_Tg4SI66A/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/mr_Tg4SI66A/240x160" />
  </a>
  <a href="https://source.unsplash.com/YEsedBccUEA/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/YEsedBccUEA/240x160" />
  </a>
  <a href="https://source.unsplash.com/Hw62tzAkXXE/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/Hw62tzAkXXE/240x160" />
  </a>
  <a href="https://source.unsplash.com/Lzx4J_Pb3sk/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/Lzx4J_Pb3sk/240x160" />
  </a>
  <a href="https://source.unsplash.com/cZVthlrnlnQ/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/cZVthlrnlnQ/240x160" />
  </a>
  <a href="https://source.unsplash.com/vddccTqwal8/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/vddccTqwal8/240x160" />
  </a>
  <a href="https://source.unsplash.com/Sj5efgWguDs/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/Sj5efgWguDs/240x160" />
  </a>
  <a href="https://source.unsplash.com/Y7y7fe8hrh0/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/Y7y7fe8hrh0/240x160" />
  </a>
  <a href="https://source.unsplash.com/sYegwYtIqJg/1600x900" data-fancybox="images" data-type="image">
    <img src="https://source.unsplash.com/sYegwYtIqJg/240x160" />
  </a>
</p>

回答1:


This seems related to the order in which the CSS is loaded.

In your jsFiddle, your CSS is loaded before the stylesheets in the HTML pane. Since your styles have the same specificity as FancyBox's defaults, yours are being overridden when FancyBox subsequently loads.

In a specificity tie, the last rule defined wins (MDN)

Notice that your styles are crossed out in favor of FancyBox's:

However, when the stylesheets are added as "resources" in the left panel, it works as expected because your styles are loaded last.

One way to ensure that your styles always take precedence is to add a baseClass and increase the specificity of your styles. See FancyBox options.

Here's a demonstration:

$('[data-fancybox="images"]').fancybox({
  baseClass: 'myFancyBox',
  thumbs: {
    autoStart: true,
    axis: 'x'
  }
})
.myFancyBox .fancybox-thumbs {
  top: auto;
  width: auto;
  bottom: 0;
  left: 0;
  right: 0;
  height: 95px;
  padding: 10px 10px 5px 10px;
  box-sizing: border-box;
  background: rgba(0, 0, 0, 0.3);
}

.myFancyBox .fancybox-show-thumbs .fancybox-inner {
  right: 0;
  bottom: 95px;
}
<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>

<p class="imglist">
  <a href="https://source.unsplash.com/juHayWuaaoQ/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/juHayWuaaoQ/240x160"></a>
  <a href="https://source.unsplash.com/eWFdaPRFjwE/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/eWFdaPRFjwE/240x160"></a>
  <a href="https://source.unsplash.com/i2KibvLYjqk/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/i2KibvLYjqk/240x160"></a>
  <a href="https://source.unsplash.com/RFgO9B_OR4g/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/RFgO9B_OR4g/240x160"></a>
  <a href="https://source.unsplash.com/7bwQXzbF6KE/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/7bwQXzbF6KE/240x160"></a>
  <a href="https://source.unsplash.com/NhU0nUR7920/1500x1000" data-fancybox="images"><img src="https://source.unsplash.com/NhU0nUR7920/240x160"></a>
  <a href="https://source.unsplash.com/ndjyaOp0fOc/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/ndjyaOp0fOc/240x160"></a>
  <a href="https://source.unsplash.com/A-fubu9QJxE/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/A-fubu9QJxE/240x160"></a>
  <a href="https://source.unsplash.com/rkkr6-2I4sg/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/rkkr6-2I4sg/240x160"></a>
  <a href="https://source.unsplash.com/mr_Tg4SI66A/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/mr_Tg4SI66A/240x160"></a>
  <a href="https://source.unsplash.com/YEsedBccUEA/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/YEsedBccUEA/240x160"></a>
  <a href="https://source.unsplash.com/Hw62tzAkXXE/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/Hw62tzAkXXE/240x160"></a>
  <a href="https://source.unsplash.com/Lzx4J_Pb3sk/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/Lzx4J_Pb3sk/240x160"></a>
  <a href="https://source.unsplash.com/cZVthlrnlnQ/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/cZVthlrnlnQ/240x160"></a>
  <a href="https://source.unsplash.com/vddccTqwal8/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/vddccTqwal8/240x160"></a>
  <a href="https://source.unsplash.com/Sj5efgWguDs/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/Sj5efgWguDs/240x160"></a>
  <a href="https://source.unsplash.com/Y7y7fe8hrh0/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/Y7y7fe8hrh0/240x160"></a>
  <a href="https://source.unsplash.com/sYegwYtIqJg/1600x900" data-fancybox="images"><img src="https://source.unsplash.com/sYegwYtIqJg/240x160"></a>
</p>


来源:https://stackoverflow.com/questions/55749254/position-thumbnails-on-bottom-with-fancybox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!