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