利用CSS实现伪图片淡入淡出效果

2,006 阅读1分钟

效果示例

2.jpg 3.jpg

思路过程

这不是刚学前端没多久嘛,想弄个图片淡入淡出的效果,就去网上搜了下,有,但是很麻烦,我就想能不能用已学的一些基础,来达到“伪图片淡入淡出”的效果,于是我苦思冥想

5.jpg

诶!有了!

4.jpg

其实就是定义两个盒子,一个盒子有图,另一个空白。

<div class="b1">
    <img src="img/123.jpg" alt="">
</div>
<div class="b2"></div>

然后让两个盒子重叠,用Z-index设定一下元素的堆叠顺序。

.b1 {
    position: absolute;
    width: 300px;
    height: 300px;
    z-index: 1;
}

.b2 {
            position: absolute;
            width: 300px;
            height: 300px;
            background-color: white;
            z-index: 2;
            animation: immove 2s linear;
}

再让空白盒子移动,看上去像是图片移动了一样。

@keyframes immove {
    0% {
        transform: translateY();
    }
    
/*通过调整translate来调整上下左右移动*/

    100% {
    transform: translateY(+100%);
    }
}

延伸

这是基础,适用于纯色背景,那如果是复杂背景呢?

我们可以将b2换成一张背景图的裁剪,然后利用利用overflow: hidden,将b2移动后溢出的盒子被隐藏。

当然只是想法啦,后续的前端学习大抵会有更简便的方法,但我想,能利用目前所学的有限创造无限

才是编程的魅力呀