jquery - 标题上的轮播过渡动画

标签 jquery css css-transitions owl-carousel

在此demo出现的时候可以在标题上看到带有转场效果的轮播。问题是这些过渡也会在标题消失时发生,所以即使标题不在中央转盘上,您也可以看到标题的延迟时间。有没有办法防止这种情况发生?

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />

    <title>Owl Test with Custom Nav</title>

    <link rel="stylesheet" href="owl.carousel.min.css" />

    <style type="text/css" media="screen">
        * { padding: 0; margin: 0; outline: 0; box-sizing: border-box; }

        html,
        body,
        .slider,
        .owl-carousel,
        .owl-stage-outer,
        .owl-stage,
        .owl-item,
        .slide { height: 100%; overflow: hidden; }

        .slide { position: relative; }
        .slide h1 { opacity: 0; visibility: hidden; font-family: monospace; font-size: 3em; line-height: 1; color: #000; text-align: center; position: absolute; top: 50%; left: 0; right: 0; margin-top: -1.5em; }
        .slide h1 {
          -webkit-transition: opacity 1s, visibility 1s;
                  transition: opacity 1s, visibility 1s;
        }
        .animate .slide h1 { opacity: 1; visibility: visible; }

        .slide1 { background-color: chocolate; }
        .slide2 { background-color: coral; }
        .slide3 { background-color: crimson; }

        .slider .owl-item { -webkit-backface-visibility: visible; backface-visibility: visible; }

    </style>
</head>
<body>
    <div class="slider">
        <div class="owl-carousel">
            <div class="slide slide1">
                <h1>Slide 1</h1>
            </div><!-- /.slide slide1 -->

            <div class="slide slide2">
                <h1>Slide 2</h1>
            </div><!-- /.slide slide2 -->

            <div class="slide slide3">
                <h1>Slide 3</h1>
            </div><!-- /.slide slide3 -->
        </div><!-- /.owl-carousel -->

    </div><!-- /.slider -->

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

    <script src="owl.carousel.min.js"></script>

    <script>
        $(document).ready(function() {
            $('.owl-carousel').owlCarousel({
                center:true,
                items: 2,
                loop: true,
                autoplay: true,
                onChanged: function (event) {
                  setTimeout(function(){
                  $('.slider').find('.center').addClass('animate').siblings().removeClass('animate')
                  }, 500);
                }

            });
        });
    </script>
</body>
</html>

最佳答案

改变你的CSS,

.slide h1 {... transition: opacity 1s, visibility 1s; }
.slide h1 {... transition: opacity 1s ease-in; }

并减少 setTimeout()<script>从 500 到 100

setTimeout(function(){... }, 100)

Demo

关于jquery - 标题上的轮播过渡动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36683575/

相关文章:

javascript - 使用外部链接访问 jquery Accordion

javascript - .on ("hover", ...) 链接不起作用

jquery - 如何向此 jquery 脚本添加图像预览?

javascript - 文本超出 div (CSS)

php - 相对元素内绝对元素的宽度问题

css - 我如何切换 wordpress 子菜单项隐藏/显示

css - 'flipping' 盒子使用背面可见性时背面可见性闪烁

javascript - 无法让我的脚本 (jquery) 将文本从第 1 帧插入到第 2 帧的文本区域中。

javascript - 提高第一个 div 的不透明度,同时减少第二个。并循环

jquery - CSS3 过渡可能存在的 Webkit 错误