gpt4 book ai didi

css - deck.js 中嵌套幻灯片的轮播

转载 作者:行者123 更新时间:2023-11-28 18:40:11 24 4
gpt4 key购买 nike

我正在使用 deck.js 进行演示。对于一张幻灯片,我想要一个带有数字/图像的静态标题,我可以轮播。这是相关的 HTML:

<section class="carousel slide">
<h2>Static Title</h2>
<figure class="slide"><figcaption>Text for first image</figcaption><img src="images/first_image.png" alt=""></figure>
<figure class="slide"><figcaption>Text for second image</figcaption><img src="images/second_image.png" alt=""></figure>
<figure class="slide"><figcaption>Text for third image</figcaption><img src="images/third_image.png" alt=""></figure>
</section>

这是我添加到 deck.js 的 JS,以使其与 deck.js 附带的水平滑动主题一起工作。

.carousel .deck-before {
-webkit-transform: translate3d(-400%, 0, 0);
-moz-transform: translate(-400%, 0);
-ms-transform: translate(-400%, 0);
-o-transform: translate(-400%, 0);
transform: translate3d(-400%, 0, 0);
height:0;
}

.carousel .deck-after {
-webkit-transform: translate3d(400%, 0, 0);
-moz-transform: translate(400%, 0);
-ms-transform: translate(400%, 0);
-o-transform: translate(400%, 0);
transform: translate3d(400%, 0, 0);
height:0;
}

.carousel .deck-next {
-webkit-transform: translate3d(200%, 0, 0);
-moz-transform: translate(200%, 0);
-ms-transform: translate(200%, 0);
-o-transform: translate(200%, 0);
transform: translate3d(200%, 0, 0);
height:0;
}

.carousel .deck-previous {
-webkit-transform: translate3d(-200%, 0, 0);
-moz-transform: translate(-200%, 0);
-ms-transform: translate(-200%, 0);
-o-transform: translate(-200%, 0);
transform: translate3d(-200%, 0, 0);
height:0;
}

当图像轮播向前发展时,这非常有效。但是,当我返回时,移出屏幕的图像向下移动,因此它位于新图像进入的位置下方。

如何使从屏幕右侧移出的图像与从左侧进入屏幕的图像保持水平?

最佳答案

问题的根源在于 height 没有转换,所以在发生类更改的那一刻,前一个元素立即具有高度,向下推仍然没有的幻灯片t 转出视野。

这是一个 fairly tough problem解决。您需要根据自己的需要做出一些选择。

首先,从每个 before/after/previous/nexts 中取出 height:0,然后说 .carousel .slide { height: 0 }

您是否需要 deck.scale 扩展才能工作,或者轮播后是否有幻灯片内容?如果是这样,您需要给 .carousel 一个补偿的高度。

你事先知道那个高度吗?只需在 CSS 中设置即可。

不知道高度,或者只想在任何地方使用它而不必每次都手动设置高度?编写一个小脚本来检查轮播内容并设置高度。像这样的东西(未经测试,小心):

$(window).load(function() {
$('.carousel').each(function(carousel) {
var $carousel = $(carousel);
var maxHeight = 0;

$carousel.each(function() {
var height = $(this).height();
maxHeight = Math.max(height, maxHeight);
});

$carousel.height(maxHeight);
});
});

对于这样的脚本,请务必从 CSS 中完全删除 height:0 声明。

关于css - deck.js 中嵌套幻灯片的轮播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com