zdog实现一个三维图腾效果代码
代码语言:html
所属分类:三维
代码描述:zdog实现一个三维图腾效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
*, *:before, *:after {
box-sizing: border-box;
}
body, html {
height: 100%;
}
body {
background: #A3C4D0;
background: linear-gradient(to bottom, #f8f5da 0%, #FFF4E2 25%, #A3C4D0 75%, #3e4f53 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#f8f5da", endColorstr="#3e4f53",GradientType=0 );
overflow: hidden;
}
main {
display: grid;
place-items: center;
height: 100%;
}
@media only screen and (max-height: 470px) {
main {
transform: scale(0.75);
}
}
canvas {
transform: translateZ(40px) translateY(100vh);
-webkit-animation: enter 2000ms cubic-bezier(0.075, 0.82, 0.165, 1) 500ms forwards;
animation: enter 2000ms cubic-bezier(0.075, 0.82, 0.165, 1) 500ms forwards;
will-change: transform;
cursor: move;
}
@-webkit-keyframes enter {
0% {
transform: translateZ(40px) translateY(100vh);
}
100% {
transform: translateZ(40px);
}
}
@keyframes enter {
0% {
transform: translateZ(40px) translateY(100vh);
}
100% {
transform: translateZ(40px);
}
}
</style>
</head>
<body >
<main>
<canvas class="totem" width="500" height="500"></canvas>
</main>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/zdog.dist.js"></script>
<script >
let illo = new Zdog.Illustration({
element: ".totem",
dragRotate: true });
let anchor = new Zdog.Anchor({
addTo: illo,
rotate: { x: -Zdog.TAU / 24, y: Zdog.TAU * .66 } });
// groups
let one = new Zdog.Anchor({
addTo: anchor,
translate: { y: -216 } });
let two = new Zdog.Anchor({
addTo: anchor,
translate: { y: -108 } });
let three = new Zdog.Anchor({
addTo: anchor,
translate: { y: 0 } });
let four = new Zdog.Anchor({
addTo: anchor,
translate: { y: 108 } });
// shared
let sharedTopBottom = {
width: 96,
height: 96,
color: "#FDAA4E",
fill: true };
let sharedTopGroup = {
rotate: { x: Zdog.TAU / 4 } };
let sharedBottomGroup = {
rotate: { x: Zdog.TAU / 4 },
translate: { y: 96 } };
let sharedFrontGroup = {
translate: { x: -48, y: 48 },
rotate: { y: -Zdog.TAU / 4 } };
let sharedBackGroup = {
translate: { x: 48, y: 48 },
rotate: { y: -Zdog.TAU / 4 } };
let sharedLeftRight = {
width: 96,
height: 96,
color: "#FED240",
fill: true };
let sharedLeftGroup = {
translate: { y: 48, z: -48 } };
let sharedRightGroup = {
translate: { y: 48, z: 48 } };
let sharedEye = {
diameter: 72,
color: "#FFFFF9",
fill: true };
let sharedPupil = {
diameter: 48,
color: "#9F355A",
fill: true };
let sharedLeftRightBorderOne = {
width: 84,
height: 84,
color: "#C2C9CC",
fill: true,
translate: { x: -6, y: 6 } };
let sharedLeftRightBorderTwo = {
width: 72,
height: 72,
color: "#FED240",
fill: true,
translate: { x: -12, y: 12 } };
let sharedLeftRightBorderThree = {
width: 60,
height: 60,
color: "#C2C9CC",
fill: true,
translate: { x: -18, y: 18 } };
let sharedLeftRightBorderFour = {
width: 48,
height: 48,
color: "#FED240",
fill: true,
translate: { x: -24, y: 24 } };
let sharedLeftRightBorderFive = {
width: 36,
height: 36,
color: "#C2C9CC",
fill: true,
translate: { x: -30, y: 30 } };
let sharedLeftRightBorderSix = {
width: 24,
height: 24,
color: "#FED240",
fill: true,
translate: { x: -36, y: 36 } };
let sharedFrontBack = {
width: 96,
height: 96,
color: "#FEF440",
fill: true };
let sharedButton = {
diameter: 48,
length: 6,
color: "#FDAE56",
frontFace: false,
backface: "#FEEE57",
fill: true,
translate: { z: -4 } };
let sharedButtonInside = {
diameter: 24,
color: "#EF9355",
fill: true,
translate: { z: -6 } };
// cube one
let oneTopGroup = new Zdog.Group(Zdog.extend(sharedTopGroup, { addTo: one }));
let oneTop = new Zdog.Rect(Zdog.extend(sharedTopBottom, { addTo: oneTopGroup, color: "#FFFD68" }));
let oneTopBorder = new Zdog.Rect({
addTo: oneTopGroup,
width: 84,
height: 72,
color: "#E4FFFF",
fill: true,
translate: { x: 6 } });
let oneTopBorderCenter = new Zdog.Rect({
addTo: oneTopGroup,
width: 72,
height: 48,
color: "#FFFD68",
fill: true,
translate: { x: 12 } });
let oneTopBorderInside = new Zdog.Rect({
addTo: oneTopGroup,
width: 60,
height: 24,
color: "#E4FFFF",
fill: true,
translate: { x: 18 } });
let oneBottomGroup = new Zdog.Group(Zdog.extend(sharedBottomGroup, { addTo: one }));
let oneBottom = new Zdog.Rect(Zdog.extend(sharedTopBottom, { addTo: oneBottomGroup, color: "#FDAA4E" }));
let oneLeftGroup = new Zdog.Group(Zdog.extend(sharedLeftGroup, { addTo: one }));
let oneLeft = new Zdog.Rect(Zdog.extend(sharedLeftRight, { addTo: oneLeftGroup }));
let oneLeftEye = new Zdog.Ellipse(Zdog.extend(sharedEye, { addTo: oneLeftGroup }));
let oneLeftPu.........完整代码请登录后点击上方下载按钮下载查看
网友评论0