zdog实现帆船动画

代码语言:html

所属分类:动画

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

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<style>
body{
	display: grid;
	place-items: center;
	height: 100vh;
	width: 100vw;
	margin: 0;
	background: #D7E8FC;
}

.zdog-canvas{
	border-radius: 50%;
}
</style>

</head>
<body translate="no">
<canvas class="zdog-canvas"></canvas>
<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/zdog.dist.js"></script>
<script >
const sunClr = '#FFE6BF';
const boatClr = '#1C3B42';
const waterClr = '#3C6490';
const fishClr = '#618DB3';
const birdClr = '#AABAC5';

const illoElem = document.querySelector('canvas');
const illoSize = 600;
const minWindowSize = Math.min(window.innerWidth, window.innerHeight);
const zoomSize = minWindowSize / illoSize;
const zoom = zoomSize < 1 ? zoomSize : Math.floor(zoomSize);

illoElem.setAttribute('width', illoSize * zoom);
illoElem.setAttribute('height', illoSize * zoom);

const illo = new Zdog.Illustration({
  element: '.zdog-canvas',
  dragRotate: true,
  zoom: zoom });


// Birds
const bird1 = new Zdog.Group({
  addTo: illo,
  translate: { x: -120, y: -150, z: 80 } });


const wingLeft = new Zdog.Ellipse({
  addTo: bird1,
  width: 15,
  height: 20,
  rotate: { z: -Zdog.TAU / 6 },
  quarters: 2,
  translate: { x: -17, y: -6 },
  fill: true,
  color: fishClr });


const wingRight = new Zdog.Ellipse({
  addTo: bird1,
  width: 15,
  height: 20,
  rotate: { z: -Zdog.TAU / 3 },
  quarters: 2,
  translate: { x: -5, y: -6 },
  fill: true,
  color: fishClr });


const bird2 = bird1.copy({ translate: { x: 0, y: -180, z: 80 } });
wingLeft.copy({ addTo: bird2 });
wingRight.copy({ addTo: bird2 });

// Sun
const sun = new Zdog.Shape({
  addTo: illo,
  stroke: 40,
  stroke: 100,
  translate: { x: 120, y: -140, z: 100 },
  fill: true,
  .........完整代码请登录后点击上方下载按钮下载查看

网友评论0