js+div+css实现鼠标滚动立体长廊走廊回顾画册相册滚动预览效果代码

代码语言:html

所属分类:画廊相册

代码描述:js+div+css实现鼠标滚动立体长廊走廊回顾画册相册滚动预览效果代码

代码标签: js div css 鼠标 滚动 立体 长廊 走廊 回顾 画册 相册 滚动 预览

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  

  
  
<style>
@import url(https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap);

body,
.container {
	transform: translate3d(0, 0, 0); /* Force GPU acceleration */
	will-change: transform;
}

body {
	margin: 0;
	height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: black;
	overflow: hidden;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;

	--width: 500px;
	--height: 500px;
	--variable-length: 65000px;
	--length: 65000px;
	--half-length: calc(var(--length) / 2);
}

/* Controls */
.controls {
	margin-bottom: 20px;
	color: white;
	font-family: "Bebas Neue", sans-serif;
	font-size: 1.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: absolute;
	z-index: 999;
	top: 50px;
}

.range-slider {
	width: 300px;
}

/* Cube container */
.container {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	transform: scale(1);
	transform-origin: center;
}

.cube {
	perspective: 800px;
	perspective-origin: 50% 50%;
	position: relative;
	width: var(--width);
	height: var(--height);
	transform-style: preserve-3d;
	transition: transform 0.3s ease-out;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden; /* For compatibility */
	will-change: transform;
}

.face {
	position: absolute;
	width: var(--width);
	height: var(--height);
	background: rgba(255, 255, 255, 1);
	border: none;
	display: flex;
	align-items: center;
	font-family: "Bebas Neue", sans-serif;
	color: black;
	will-change: transform;
}

.front {
	transform: translateZ(calc(var(--length) - var(--variable-length)));
	background-size: 500px;
	background-blend-mode: difference;
}

.front.main {
	transform: translateZ(calc(var(--length) - var(--variable-length)));
	background-size: 500px;
	background-color: rgba(255, 255, 255, 0.9);
	opacity: 1; /* Initial state */
	transition: opacity 5s ease-in-out; /* Smooth transition */
	display: flex;
	align-items: center;
	justify-content: center;
}

.front.main.hidden {
	opacity: 0.6; /* Final state */
}

.back {
	transform: translateZ(calc(-1 * var(--variable-length))) rotateY(180deg)
		scale(-1, 1);
	background: rgb(17, 17, 17);
	background: linear-gradient(
		0deg,
		rgba(17, 17, 17, 1) 0%,
		rgba(28, 28, 28, 1) 33%,
		rgba(99, 99, 99, 1) 94%,
		rgba(255, 255, 255, 1) 100%
	);
	display: flex;
	justify-content: center;
	align-items: center;
}
.back .frame {
	position: unset;
}

.left {
	transform: translateZ(calc(var(--half-length) - var(--variable-length)))
		translateX(calc(-1 * var(--half-length))) rotateY(-90deg) scale(-1, 1);
	background: rgba(255, 255, 255, 1);
	width: var(--length);
	background: rgb(17, 17, 17);
	background: linear-gradient(
		0deg,
		rgba(17, 17, 17, 1) 0%,
		rgba(28, 28, 28, 1) 33%,
		rgba(99, 99, 99, 1) 94%,
		rgba(255, 255, 255, 1) 100%
	);
}

.right {
	transform: translateZ(calc(var(--half-length) - var(--variable-length)))
		translateX(calc(-1 * (var(--half-length) - var(--width)))) rotateY(90deg)
		scale(-1, 1);
	background: rgba(255, 255, 0, 1);
	width: var(--length);
	background: rgb(17, 17, 17);
	background: linear-gradient(
		0deg,
		rgba(17, 17, 17, 1) 0%,
		rgba(28, 28, 28, 1) 33%,
		rgba(99, 99, 99, 1) 94%,
		rgba(255, 255, 255, 1) 100%
	);
}

.top {
	transform: translateZ(calc(var(--half-length) - var(--variable-length)))
		translateY(calc(-1 * var(--half-length))) rotateX(90deg) scale(1, -1);
	background: #1c1c1c;
	height: var(--length);
}

.bottom {
	transform: translateZ(calc(var(--half-length) - var(--variable-length)))
		translateY(calc(-1 * (var(--half-length) - var(--height)))) rotateX(-90deg)
		scale(1, -1);
	background: url("//repo.bfw.wiki/bfwrepo/image/67681c202b3b8.png");
	background-size: 200px contain;
	height: var(--length);
	image-rendering: auto; /* Ensure smooth scaling */
	will-change: transform; /* Optimize rendering for motion */
}

p {
	font-size: 7em;
	transform: translateZ(0);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	position: absolute;
}

.left p {
	line-height: 1;
	color: white;
}

.title {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-size: 2em;
	color: white;
	background: none;
	margin-top: 20%;
}

.title p {
	font-size: 3em;
	text-align: center;
	line-height: 0.7;
}

.face img {
	image-rendering: auto; /* Ensure smooth scaling */
	transform: translateZ(0); /* Trigger higher-quality rendering */
	will-change: transform; /* Optimize rendering for motion */
	backface-visibility: visible; /* Reduce rendering artifacts */
	-webkit-backface-visibility: visible; /* For compatibility */
}

img.left-align {
	object-position: left;
}
img.right-align {
	object-position: right;
}
img.top-align {
	object-position: top;
}
img.bottom-align {
	object-position: bottom;
}

.cube,
.face,
.frame,
p {
	transform-style: preserve-3d; /* Ensure proper 3D rendering */
	will-change: transform; /* Optimize for dynamic changes */
}

.archean {
	transform: translateZ(calc((var(--length) * 0.99) - var(--variable-length)));
}
.cambrian {
	transform: translateZ(
		calc((var(--length) * 0.83076) - var(--variable-length))
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0