tkop实现一款切蛋糕立体交互可爱蛋糕效果代码

代码语言:html

所属分类:动画

代码描述:tkop实现一款切蛋糕立体交互可爱蛋糕效果代码

代码标签: tkop 切蛋糕 立体 交互 可爱 蛋糕

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

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

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

  <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/tkop.js" data-tor-init="postpone"></script>
  
<style>
html,
body {
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.wrapper {
	display: flex;
	align-items: center;
	justify-content: center;
	perspective: 10000px;
	background-color: #fffded;
	font-size: clamp(1rem, 3vw, 1.5rem);
	width: 100%;
	height: 100%;
}

.cake {
	transform-style: preserve-3d;
	transform-origin: top;
	position: relative;
}

.cake::after {
	content: url("//repo.bfw.wiki/bfwrepo/svg/cake/smile.66ec8f86.svg");
	position: absolute;
	width: 6em;
	top: 0;
	left: 0;
	display: block;
	transform: translate3d(-1em, 7em, -3em) rotateX(-90deg);
	transform-origin: center;
	pointer-events: none;
}

.piece {
	width: 4em;
	height: auto;
	position: relative;
	transform-style: preserve-3d;
	transform-origin: top;
	cursor: pointer;
}

.piece:not(:first-child) {
	position: absolute;
	top: 0;
	left: 0;
}

.top {
	position: relative;
	transform: scale(1.05);
	transform-origin: top;
	transform-style: preserve-3d;
}

.shadow {
	position: absolute;
	pointer-events: none;
	opacity: 0.3;
	filter: blur(2.5em);
}

.front {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	transform: rotateX(-90deg);
	transform-origin: top;
	transform-style: preserve-3d;
}

.front img:first-child {
	position: absolute;
	transform: translateZ(3px) scaleX(1.05);
	width: 100%;
}

.left,
.right {
	position: absolute;
	top: 100%;
	width: 7.7em;
}

.left {
	left: 0;
	transform: rotateZ(-75deg) rotateX(-90deg);
	transform-origin: top left;
}

.right {
	right: 0;
	transform: rotateZ(75deg) rotateX(-90deg);
	transform-origin: top right;
}

.strawberry {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 1.5em;
	margin: auto;
	right: 0;
	transform-origin: bottom;
	transform-style: preserve-3d;
	transform: translate3d(0px, -1.8em, 0px) rotateX(-90deg);
}

.strawberry img:not(:first-child) {
	position: absolute;
	top: 0;
	left: 0;
}

.strawberry img:nth-child(1) {
	transform: rotateY(0deg);
}
.strawberry img:nth-child(2) {
	transform: rotateY(45deg);
}
.strawberry img:nth-child(3) {
	transform: rotateY(90deg);
}
.strawberry img:nth-child(4) {
	transform: rotateY(135deg);
}
.strawberry img:nth-child(5) {
	transform: rotateY(180deg);
}
.strawberry img:nth-child(6) {
	transform: rotateY(225deg);
}
.strawberry img:nth-child(7) {
	transform: rotateY(270deg);
}
.strawberry img:nth-child(8) {
	transform: rotateY(315deg);
}
.strawberry img:nth-child(9) {
	transform: rotateY(360deg);
}
.strawberry img:nth-child(10) {
	transform: rotateY(405deg);
}
.strawberry img:nth-child(11) {
	transform: rotateY(450deg);
}
.strawberry img:nth-child(12) {
	transform: rotateY(495deg);
}
</style>

  
  
</head>

<body translate="no">
  <div
	class="wrapper"
	data-tor-group="
    .piece =>
      rotateZ(/+30/deg) translateZ(-100vh)
      animate:[translateZ(0em <5s, spring(30, 15), delay: /random(50, 500)/ms>)]
      hover:[translateZ(2em) @keep-shadow/+1/]
      click:translateZ(100vh)
    ;
    .shadow => translateZ(-10em) @keep-shadow/+1/:translateZ(-12em);
  &qu.........完整代码请登录后点击上方下载按钮下载查看

网友评论0