这款s和css3局部3d幻灯片插件的灵感来自于Franklin Ta写的一篇文章,文章中他描述了如何使用脚本将嵌入在框架中的图形进行3d转换。

下面是第一个demo中如何在嵌入屏幕的手机界面中添加动画的css代码:

.mobile {
    overflow: hidden;
    position: absolute;
    z-index: 100;
    background: #333;
    width: 320px;
    height: 480px;
    top: 200px;
    left: 500px;
    outline: 1px solid transparent; /* For Firefox (jagged edges bug) */
    transform-origin: 0 0 0;
    transform: matrix3d(0.846234173238242, 0.251585817964749, 0, 0.000085171934399447, -0.115203182108559, 0.800700357116676, 0, -0.000214263459947427, 0, 0, 1, 0, 23, 14, 0, 1);
}
                

例子demo中是简单的幻灯片,使用CSS animations来显示和隐藏图片,你可以自定义一些幻灯片过渡效果,例如使用Daniel Eden的animate.css

下面是例子1中幻灯片自定义动画的代码:

.slideshow {
    padding: 0;
    margin: 0;
    width: 100%;
    height: 100%;
    list-style-type: none;
}

.slideshow__item {
    width: 100%;
    height: 100%;
    position: absolute;
    overflow: hidden;
    pointer-events: none;
    z-index: 1;
    transform: translate3d(-100%, 0, 0);
}

.slideshow__item.current{
    pointer-events: auto;
    z-index: 100;
    transform: translate3d(0, 0, 0);
}

.slideshow img {
    width: 100%;
}
                

demo2中使用了animation ,它的代码如下:

.slideshow__item.in--next {
    animation: inNext 0.5s forwards;
}

.slideshow__item.out--next {
    animation: outNext 0.5s forwards;
}

.slideshow__item.in--prev {
    animation: inPrev 0.5s forwards;
}

.slideshow__item.out--prev {
    animation: outPrev 0.5s forwards;
}

@keyframes inPrev {
    0% {
        transform: translate3d(0, 100%, 0);
    }
    100% {
        transform: none;
    }
}

@keyframes inNext {
    0% {
        transform: scale3d(0.5, 0.5, 1);
    }
    100% {
        transform: none;
    }
}

@keyframes outPrev {
    100% {
        transform: scale3d(0.5, 0.5, 1);
    }
}

@keyframes outNext {
    100% {
        transform: translate3d(0, 100%, 0);
    }
}
                

下面是所有4个效果的截图:

局部幻灯片效果1

局部幻灯片效果2

局部幻灯片效果3

局部幻灯片效果4