three实现三维左右拖拽光晕聚焦滤镜照片墙代码
代码语言:html
所属分类:画廊相册
代码描述:three实现三维左右拖拽光晕聚焦滤镜照片墙代码,可修改参数改变鼠标聚焦光晕效果。
代码标签: three 三维 左右 拖拽 光晕 聚焦 滤镜 照片墙 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/normalize.css">
<style>
@import url("https://fonts.cdnfonts.com/css/thegoodmonolith");
@import url("https://fonts.cdnfonts.com/css/pp-neue-montreal");
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: "TheGoodMonolith", monospace;
background-color: #111;
color: #f0f0f0;
overflow: hidden;
position: relative;
}
/* Dust/Scratches background effect for the entire site */
body::after {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0.1;
mix-blend-mode: screen;
pointer-events: none;
z-index: 1;
}
/* Animated noise effect */
body::before {
content: "";
position: fixed;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: transparent
url("//repo.bfw.wiki/bfwrepo/image/5dd653c337706.png") repeat 0 0;
background-size: 300px 300px;
-webkit-animation: noise-animation 0.3s steps(5) infinite;
animation: noise-animation 0.3s steps(5) infinite;
opacity: 0.1;
will-change: transform;
z-index: 100;
pointer-events: none;
}
@-webkit-keyframes noise-animation {
0% {
transform: translate(0, 0);
}
10% {
transform: translate(-2%, -3%);
}
20% {
transform: translate(-4%, 2%);
}
30% {
transform: translate(2%, -4%);
}
40% {
transform: translate(-2%, 5%);
}
50% {
transform: translate(-4%, 2%);
}
60% {
transform: translate(3%, 0);
}
70% {
transform: translate(0, 3%);
}
80% {
transform: translate(-3%, 0);
}
90% {
transform: translate(2%, 2%);
}
100% {
transform: translate(1%, 0);
}
}
@keyframes noise-animation {
0% {
transform: translate(0, 0);
}
10% {
transform: translate(-2%, -3%);
}
20% {
transform: translate(-4%, 2%);
}
30% {
transform: translate(2%, -4%);
}
40% {
transform: translate(-2%, 5%);
}
50% {
transform: translate(-4%, 2%);
}
60% {
transform: translate(3%, 0);
}
70% {
transform: translate(0, 3%);
}
80% {
transform: translate(-3%, 0);
}
90% {
transform: translate(2%, 2%);
}
100% {
transform: translate(1%, 0);
}
}
p {
text-transform: uppercase;
font-size: 13px;
letter-spacing: 0.05em;
-webkit-font-smoothing: antialiased;
}
footer {
position: fixed;
width: 100vw;
padding: 2em;
display: flex;
justify-content: flex-end;
align-items: center;
z-index: 2;
mix-blend-mode: difference;
bottom: 0;
right: 0;
opacity: 0;
transition: opacity 0.5s ease;
}
#canvas {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
cursor: -webkit-grab;
cursor: grab;
opacity: 0;
transition: opacity 0.5s ease;
}
#canvas:active {
cursor: -webkit-grabbing;
cursor: grabbing;
}
.particles {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
pointer-events: none;
opacity: 0;
transition: opacity 0.5s ease;
}
.particle {
position: absolute;
background: rgba(255, 255, 255, 0.1);
border-radius: 50%;
}
.tp-dfwv {
position: fixed;
top: 10px;
right: 10px;
z-index: 10;
}
/* Slide titles container */
#titles-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 1;
opacity: 0;
transition: opacity 0.5s ease;
}
.slide-title {
position: absolute;
color: white;
pointer-events: none;
transition: opacity 0.3s ease, filter 0.3s ease;
}
.title-text {
font-family: "PP Neue Montreal", sans-serif;
text-transform: uppercase;
font-size: 6vw;
line-height: 0.9;
font-weight: 400;
letter-spacing: -0.03em;
margin: 0;
white-space: nowrap;
}
.title-number {
font-family: "TheGoodMonolith", monospace;
font-size: 0.8vw;
margin: 0;
position: relative;
padding-top: 10px;
display: flex;
align-items: center;
}
.title-number::before {
content: "";
display: block;
width: 40px;
height: 3px;
background-color: #ffe600;
margin-right: 10px;
}
.preloader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000;
z-index: 9999;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.circle-container {
position: relative;
width: 200px;
height: 200px;
margin-bottom: 30px;
}
.initializing-text-container {
position: relative;
margin-top: 30px;
overflow: hidden;
}
.initializing-text {
font-family: "TheGoodMonolith", monospace;
color: #fff;
font-size: 12px;
letter-spacing: 3px;
position: relative;
z-index: 2;
mix-blend-mode: difference;
}
.initializing-progress {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 0%;
background-color: #ffe600;
z-index: 1;
}
.dot {
position: absolute;
width: 6px;
height: 6px;
border-radius: 50%;
background-color: #ffe600;
opacity: 0;
}
@-webkit-keyframes fadeIn {
0% {
opacity: 0;
transform: scale(0);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes fadeIn {
0% {
opacity: 0;
transform: scale(0);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@-webkit-keyframes fadeOut {
0% {
opacity: 1;
transform: scale(1);
}
100% {
opacity: 0;
transform: scale(0);
}
}
@keyframes fadeOut {
0% {
opacity: 1;
transform: scale(1);
}
100% {
opacity: 0;
transform: scale(0);
}
}
@-webkit-keyframes pulse {
0% {
transform: scale(0.8);
}
50% {
transform: scale(1.2);
}
100% {
transform: scale(0.8);
}
}
@keyframes pulse {
0% {
transform: scale(0.8);
}
50% {
transform: scale(1.2);
}
100% {
transform: scale(0.8);
}
}
</style>
</head>
<body translate="no">
<div class="preloader"&.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0