下拉动画定位

时间:2014-03-05 15:06:16

标签: javascript jquery html css

当您将鼠标悬停在四个缩略图中的一个缩略图上时,我会尝试制作下拉列表,从下方显示“标题标题”而不是图像顶部。

我一直在摆弄CSS,但没有运气,因为我几乎没有任何JS经验,我不知道是不是需要编辑的JS而不是CSS!

Yuu可以在style.css的最底部找到CSS

我认为这对于这里的人来说可能是一个快速而简单的问题!

http://www.jimharrison.co.uk/

另外,当我在这里时,我也可以问一下是否有人知道动画运动图像的更好方法 - 我目前正在使用CSS3 @keyframes,但在某些浏览器中它有点不稳定。

<div class="grid-block-container">
<div class="grid-block slide">
<div class="caption1">
<h3>Caption Title</h3>
</div>
<div class="caption">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<p><a href="#" class="learn-more">Learn more</a></p>
</div>
<img src="img/1.jpg" alt="nebula">
</div>
</div>

.grid-block-container {
    width: 100%;
    margin: 0;
}
.grid-block {
    position: relative;
    width: 100%;
}

.caption1 {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(246,48,62,0.7);
    width: 100%;
    padding-bottom: 15px;
}

.caption {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(246,48,62,0.7);
    width: 100%;
    border-bottom: 1px solid #ffffff;
    padding-bottom: 15px;
}

.caption1 h3, .caption p {
    color: #ffffff;
    margin: 20px;
}

.caption1 h3 {
    margin: 20px 20px 10px;
}

.caption p {
    font-size: .9em;
    line-height: 1.5em;
    margin: 0 20px 15px;
}

.caption a.learn-more {
    padding: 5px 10px;
    background: #f6303e;
    color: #fff;
    border-radius: 2px;
    -moz-border-radius: 2px;
    font-weight: bold;
    text-decoration: none;
}

.caption a.learn-more:hover {
    background: #fff;
    color: #f6303e;
}

<script type="text/javascript">
$(document).ready(function() {
    $('.standard').hover(
        function(){
            $(this).find('.caption').show();
        },
        function(){
            $(this).find('.caption').hide();
        }
    );
    $('.fade').hover(
        function(){
            $(this).find('.caption').fadeIn(250);
        },
        function(){
            $(this).find('.caption').fadeOut(250);
        }
    );
    $('.slide').hover(
        function(){
            $(this).find('.caption').slideDown(200);
        },
        function(){
            $(this).find('.caption').slideUp(200);
        }
    );
});
</script>

http://jsfiddle.net/8j63s/

3 个答案:

答案 0 :(得分:0)

将.caption div更改为以下

.caption {display: none; position: absolute; bottom: 0; left: 0; background:rgba(246,48,62,0.7); width: 100%; border-bottom: 1px solid #ffffff; padding-bottom: 15px; }

所有这一切都是删除顶部:0;样式到底:0;

见下面的截图:

screenshot

答案 1 :(得分:0)

更改您的CSS以显示此信息:

.caption {
display: none;
position: absolute;
top: 71px;
left: 0;
background: rgba(246,48,62,0.7);
width: 100%;
border-bottom: 1px solid #ffffff;
padding-bottom: 15px;
}

如果标题标题只在一行上,则将其放在标题标题下面。见下面的截图: enter image description here

为了让它能够动态地进行更改,您需要使用这段代码更改jQuery以使其适用于所有这些:

$('.slide').each(function() {
    var titleHeight = $(this).find('.caption1').innerHeight();
    $(this).find('.caption').css('top', titleHeight + 'px');
});

这将遍历名为slide的类中的每个元素,获取标题高度,然后更改标题文本以适应它。

答案 2 :(得分:0)

只能用css(davidb回答),但如果你想要一个jquery版本,你可以这样做:

$('.grid-block').hover(function(){
    $(this).find('.caption').slideDown();
},function(){
    $(this).find('.caption').slideUp();
});

还将.caption样式top更改为bottom:0;

FIDDLE