开发者问题收集

Flickity 不会渲染轮播中的第二张图片

2015-08-09
5638

http://codepen.io/Thisisntme/pen/rVRyJE 是对我网站的测试。我试图添加一个 flickity 轮播,但由于某种原因,它不会渲染 div 中的第二张图片。这是没有所有其他 html 和 css 内容的轮播。 http://codepen.io/Thisisntme/pen/waOeWa

<div class="gallery js-flickity">
   <div class="gallery-cell">
      <img src="https://4c95d0ec6dcefe3d6c4d74191bd78c322c485be4.googledrive.com/host/0Bxf7lERLL3TlfjlMT28zSU9RdUFqZ2ZzWlFyWFpKMzJIbUpBelFIUnlsbTVHVUlfNVJfaXc/ART.JPG" alt="art">
   </div>
   <div class="gallery-cell">
      <img src="https://4c95d0ec6dcefe3d6c4d74191bd78c322c485be4.googledrive.com/host/0Bxf7lERLL3TlfjlMT28zSU9RdUFqZ2ZzWlFyWFpKMzJIbUpBelFIUnlsbTVHVUlfNVJfaXc/STUFF.jpg" alt="stuff">
  </div>
  <div class="gallery-cell">
  </div>
  <div class="gallery-cell"></div>
  <div class="gallery-cell"></div>
</div>

CSS:

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.gallery {
   padding: 50px 0px 0px 0px;
     
}

.gallery img {
  display: block;
  width: 100%;
  height:auto;
}

以下是图片链接良好的证明

art stuff

哦,没有 jQuery。

编辑:对于那些仍然关心的人,图像不再起作用。Google Drive 停止让您从他们的服务器托管。

2个回答

您的 .gallery-cell 只需要 width100% ,并且至少对我来说,您的 img 标签需要明确关闭。为了解决尺寸问题,我使用 JS 明确初始化了 Flickity,而不是隐式使用 HTML 类。

JSFiddle: https://jsfiddle.net/3qr6hub1/2/

var flkty = new Flickity('.gallery');
* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.gallery {
   padding: 50px 0px 0px 0px;
}

.gallery-cell {
    width: 100%;
}

.gallery img {
  width: 100%;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/flickity/1.0.0/flickity.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/flickity/1.1.0/flickity.pkgd.min.js"></script>
<div class="gallery">
   <div class="gallery-cell">
       <img src="https://4c95d0ec6dcefe3d6c4d74191bd78c322c485be4.googledrive.com/host/0Bxf7lERLL3TlfjlMT28zSU9RdUFqZ2ZzWlFyWFpKMzJIbUpBelFIUnlsbTVHVUlfNVJfaXc/ART.JPG" alt="art" />
   </div>
   <div class="gallery-cell">
       <img src="https://4c95d0ec6dcefe3d6c4d74191bd78c322c485be4.googledrive.com/host/0Bxf7lERLL3TlfjlMT28zSU9RdUFqZ2ZzWlFyWFpKMzJIbUpBelFIUnlsbTVHVUlfNVJfaXc/STUFF.jpg" alt="stuff" />
  </div>
  <div class="gallery-cell">
  </div>
  <div class="gallery-cell"></div>
  <div class="gallery-cell"></div>
</div>
Maximillian Laumeister
2015-08-09

好的,我也遇到了这个问题,留在这里等下一位 Google 员工来处理。每当我向轮播添加 图像 时,它都不会显示。

这是因为在附加单元格时,图像尚未加载。这意味着 Flickity 认为此单元格没有内容,从而使 .flickity-viewport 元素的高度为 0px

因此,您需要确保要附加的项目标记为 lazyLoaded 。这让 Flickity 知道它需要等待 imagesLoaded 才能解析内容。

示例:

myNewCell = '<img src="src.png" data-flickity-lazyload="src.png" />
flkty.append(myNewCell);
Romuloux
2016-11-17