Jquery Nivo滑动条的过渡是如何工作的



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

如果有人有一个一般的想法或具体的代码如何使过渡效果,这将是感激的谢谢。

总体思路如下:第一张图片上有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>

你也可以有另一个image2div,它将在你加载完所有的片段后显示。并在你显示它之后销毁所有的碎片

有很多方法可以在javascript上实现整个过程对于我来说,首先创建一个piece数组(array ofdiv)然后你可以创建任何你想要的效果,只要用不同的效果和不同的顺序来显示它们

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

刚刚通过谷歌找到解决我的NivoSlider问题的方法。

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