Jquery Nivo Slider转换如何工作?

时间:2011-11-19 10:52:31

标签: jquery html css nivo-slider

我想知道如何创建Jquery Nivo Slider过渡效果,而不是创建整个插件。我尝试使用CSS的clip属性,但我无法创建效果,使图像的一部分逐渐淡出或逐块移出,直到下一张幻灯片显示。

如果有人对如何制作过渡效果有一般性想法或具体代码,我们将不胜感激。

2 个答案:

答案 0 :(得分:6)

一般的想法如下: 你有第一个图像的div然后你有大量的div与第二个图像,你产生它们调整CSS属性

每个第二个图像div只是它的一小部分,具有调整后的背景,因此它覆盖了之前的图像,部分图像

使用此方法,您可以按照您想要的任何效果以任何顺序生成碎片。 将它们滑入,淡化它们,随意填充,任何东西

Html看起来像这样:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
    <style type="text/css">
    .first{
        height:500px;
        width:500px;
        position: absolute;
        background:url(1.jpg);
        z-index: 2;

    }

    .second_part1{
        height:50px;
        width:50px;
        position: absolute;
        background:url(2.jpg) 0 0;
        z-index: 2;

    }

    .second_part2{
        height:50px;
        width:50px;
        position: absolute;
        background:url(2.jpg) -50px 0;
        left:50px;
        z-index: 2
    }

    .second_part3{
        height:50px;
        width:50px;
        position: absolute;
        background:url(2.jpg) -200px -150px ;
        left:200px;;
        top:150px;
        z-index: 2
    }
</style>
</head>
<body>
    <div class="first">
    </div>
    <div class="second_part1">
    </div>
    <div class="second_part2">
    </div>
    <div class="second_part3">
    </div>
</body>
</html>

你还可以拥有另一个image2 div,它将在你加载所有碎片后显示出来。在你出现之后摧毁所有碎片

有很多方法可以在javascript上强制执行整个过程 至于我,首先制作一些片段(div的数组),然后你可以创建任意数量的效果,只需用不同的效果和不同的顺序显示它们

我不知道nivo是否使用这种方式或其他方式,但这有效:)

答案 1 :(得分:2)

在找到我的NivoSlider问题的解决方案时,只需通过Google访问此页面。

NivoSlider,基本上只是创建一些div元素作为图像替换,然后将图像URL用作背景图像,每个片段具有不同的背景位置,以便稍后进行动画制作:

// Set the slices size
var slice_w = $slider.width() / config.slices,
    slice_h = $slider.height();

// Build the slices
for (var i = 0; i < config.slices; i++) {
    $('<div class="slice" />').css({
        'position':'absolute',
        'width':slice_w,
        'height':slice_h,
        'left':slice_w*i,
        'z-index':4,
        'background-color':'transparent',
        'background-repeat':'no-repeat',
        'background-position':'-' + slice_w*i + 'px 0'
    }).appendTo($slider);
}

// Change the background image when slideshow starts from here... etc etc...

这是我很久以前做过的一个例子:http://reader-download.googlecode.com/svn/trunk/simple-useful-jquery-slideshow_nivo-slider-like-effect.html