如何使用CSS3SCSS实现逼真的车窗雨滴效果

html-css019

如何使用CSS3SCSS实现逼真的车窗雨滴效果,第1张

参考下面方法:

1先实现一个小雨滴

首先雨滴是一个个小的椭圆形元素:

.raindrop {

width: 8px

height: 7px

border-radius: 100%

}

2其次雨滴是一个个凸透镜,能折射出远处的景色,远景所处位置远大于2倍焦距,成倒立、缩小的实像。

“倒立”的效果可以通过旋转180°来实现,“缩小”的效果通过设置背景图片的尺寸来达到(下面把背景图缩小到全屏的5%并居中)。

.raindrop {

position: absolute

background-image: url("背景图地址")比如:i.imgur.com/xQdYC7x.jpg 前面加上http://。

background-size: 5vw 5vh

background-position: 50%

transform: rotate(180deg) rotateY(0)

}

这样就得到了一个小雨点。

3随机雨滴

接着要创建一些随机分布的雨点对象,假如只有几个,可以手动编写CSS代码,但如果有几十个,直接写CSS代码的效率和可维护性就很差了。

使用SCSS的random方法,来随机微调雨点对象的尺寸和绝对位置。

// 生成0到1之间的随机数

$x:random()

$y:random()

// 随机尺寸和位置

$drop-width:5px+random(11)

$drop-stretch:0.7+(random()*0.5)

$drop-height:$drop-width*$drop-stretch

.raindrop:nth-child(#{$i}){

left:$x * $width

top:$y * $height

width:$drop-width

height:$drop-height

background-position:percentage($x) percentage($y)

}

}

4效果增强

还可以给雨滴添加一点闪光的视觉效果,通过CSS3滤镜来实现:

[css] view plain copy

.raindrop {

filter: brightness(1.2)

-webkit-filter: brightness(1.2)

}

简单说下思路你可以试试看行不行,雨滴用图片,图片外面包含链接,链接外用<div>包含。通过设置相应CSS里的z-index属性使图片浮在页面上。然后通过setTimeout()函数使图片动起来。最后对整个<div>标签触发onclock事件

刚才试了下,你把下载下来的

文件夹【JS】里的文件【rainyday.js】第19行注销就可以去掉城市背景

剩下的,你到页面上修改

engine.preset(0, 2, 0.5),

engine.preset(4, 4, 1)

调整雨滴的大小。。

更多的我也不知道了-。-

自己看看里面的注释吧

希望能帮到你~

满意望采纳~