在背景图像上滑动效果

时间:2013-07-12 20:14:42

标签: javascript jquery css

您好我想在主页上的网站http://www.moveline.com/等背景图片之间重现滑块效果。

示例部分标题下方:“为下一步行动制定详细信息”。

我看一下他们使用jQuery,RequireJS(2.1.4)

的代码

我尝试隔离产生该效果的代码,但JavaScript代码已被压缩,这使得它很难理解(加上他们使用主干)。

任何想法如何在一些插件的帮助下很好地在jQuery中重现这个?

谢谢

1 个答案:

答案 0 :(得分:1)

这是他们在网站http://jsfiddle.net/y29kR/2/

上所做的几乎所有工作的小提琴

HTML:

<div class="items">
    <div class="menu-item" data-look-at="0 0">item1</div>
    <div class="menu-item" data-look-at="-40px -70px">item2</div>
    <div class="menu-item" data-look-at="-120px -30px">item3</div>
</div>
<div class="menu-content"></div>

CSS在背景位置上使用css过渡

.items {
    float:left;
}
.menu-item {
    padding: 15px;
    color: #333;
    border-bottom: 1px solid #ccc;
    width: 70px;
}

.menu-content {
    height: 150px;
    width: 150px;
    background-repeat: no-repeat;
    background-image: url("http://placehold.it/350x350");
    background-position: center center;
    float:left;
    -webkit-transition: background-position 600ms ease;
    -moz-transition: background-position 600ms ease;
    -o-transition: background-position 600ms ease;
}

我正在使用jQuery的.css方法来检测悬停事件以产生(几乎)所需的效果:

jQuery(document).ready(function() {
    $('.menu-item').hover(function(e) {
        var target = $(e.target),
            newPos = target.data("look-at");
        $('.menu-content').css({'background-position': newPos}); 
    });
    $('.items').mouseleave(function(e) {  
        $('.menu-content').css({'background-position': 'center center'}); 
    });
});