【问题标题】:Cycle2: is it possible to place the caption above the image?Cycle2:是否可以将标题放在图像上方?
【发布时间】:2013-11-04 07:10:09
【问题描述】:

小提琴在这里:http://jsfiddle.net/r4qyU/

这是一个带有平铺效果的 JQuery Cycle2 幻灯片。我不知道如何将标题放在图像上方。幻灯片具有由插件应用的overflow: hidden 样式。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script src="http://malsup.github.com/min/jquery.cycle2.min.js"></script>
<script src="https://rawgithub.com/malsup/cycle2/master/jquery.cycle2.tile.js"></script>
<div class="my-wrapper">
    <div class="cycle-slideshow" data-cycle-fx="tileSlide" data-cycle-timeout=2000 data-cycle-caption-template="{{cycleTitle}}">
        <img src="http://jquery.malsup.com/cycle2/images/p1.jpg" data-cycle-title="Spring">
        <img src="http://jquery.malsup.com/cycle2/images/p2.jpg" data-cycle-title="Redwoods">
        <img src="http://jquery.malsup.com/cycle2/images/p3.jpg" data-cycle-title="Angle Island">
        <img src="http://jquery.malsup.com/cycle2/images/p4.jpg" data-cycle-title="Raquette Lake">
        <div class="cycle-caption"></div>            
    </div>
</div>

还有css:

.my-wrapper {
    width: 700px;
    height: 500px;
    background: gray;
    padding: 10px;
    margin: auto;
}
.cycle-slideshow {
    width: 100%;
    margin-top: 100px;
}
.cycle-caption {
    background: rgba(0,0,0,.5);
    font-size: 70px;
    right: auto;
    height: 80px;
    line-height: 80px;
    width: 100%;
    top: -40px;
}

【问题讨论】:

    标签: css jquery-cycle jquery-cycle2


    【解决方案1】:

    你做得很好,几乎一切正常!

    我通过以下方式修改了您现有的 css:

    .cycle-slideshow {
        width: 100%;
        margin-top: 100px;
        overflow: visible !important;
    }
    

    这很重要。如果我不这样做,文本会因为overflow: hidden 而被截断,因为我添加了您提供的关键信息

    overflow: visible !important; This effectively overrides any other style rule.
    

    然后我使用absolute 中的position 来获得图片上方的.cycle-caption,如下所示:

    .cycle-caption {
        background: rgba(0,0,0,.5);
        font-size: 70px;
        height: 80px;
        line-height: 80px;
        width: 100%;
        position: absolute; /* What I added */
        top: -80px; /* This needs to be set to the height of the .cycle-caption */
        left: 0; /* What I added */
    } 
    

    这是为你更新的jsFiddle,看看这是不是你想要的。

    在我的解决方案之后,我们遇到了一个问题,动画将显示在容器之外,显然这不是我们想要的。我解决这个问题的方法就是将高度设置为.cycle-slideshow185px 这是一个更新的jsFiddle

    【讨论】:

    • 问题是,在你的小提琴中,当动画发生时,瓷砖在图像下方是可见的。这个效果看起来很奇怪。可以,例如淡入淡出效果(不会为主区域边界之外的任何元素设置动画),但我需要瓷砖。
    • 啊,我明白了,我解决了你的问题,只需应用高度:188px;到 .cycle-slideshow 这里是更新的 jsFiddle 将在几分钟内更新答案。 jsfiddle.net/r4qyU/5
    • 瓷砖下降到中间,直到动画结束都可见。然后他们都消失了。这是一种与原始效果不同的视觉效果,其中瓷砖一个接一个地连续消失。
    猜你喜欢
    • 1970-01-01
    • 2020-01-01
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多