gsap+svg实现可拖动位置网格动画效果代码

代码语言:html

所属分类:拖放

代码描述:gsap+svg实现可拖动位置网格动画效果代码,可拖动每个网格内的svg动画。

代码标签: gsap+svg实现可拖动位置网格动画效果代码

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

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

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

  
  
<style>
@import url("https://fonts.googleapis.com/css2?family=Tilt+Warp&display=swap");
:root {
  --color-blue: #154084;
  --color-red: #9d2719;
  --color-yellow: #d7b418;
  --color-white: #fff3e7;
  --color-black: #222222;
  --box-size: 200px;
  font-family: "Tilt Warp", sans-serif;
  color: var(--color-text);
  background-color: var(--color-black);
}

body {
  height: 100vh;
  width: 100vw;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

#print_container {
  padding: 12px;
  background-color: var(--color-white);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
}

.title_container {
  display: flex;
  justify-content: space-between;
  align-items: end;
}

.title {
  font-size: 5rem;
  line-height: 5rem;
  font-weight: 600;
  letter-spacing: -2px;
  color: var(--color-black);
  margin: 0;
}

.color_pallet {
  display: flex;
}

.color_pallet div {
  width: 20px;
  height: 20px;
}

.color_pallet .blue {
  background-color: var(--color-blue);
}

.color_pallet .red {
  background-color: var(--color-red);
}

.color_pallet .yellow {
  background-color: var(--color-yellow);
}

.color_pallet .black {
  background-color: var(--color-black);
}

#grid_container {
  position: relative;
  width: calc(var(--box-size) * 4);
  height: calc(var(--box-size) * 4);
}

.cell {
  position: absolute;
  pointer-events: none;
  /* border: 1px solid #ffffff82; */
}

.box {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: var(--box-size);
  height: var(--box-size);
  line-height: var(--box-size);
  cursor: pointer;
  overflow: hidden;
}

.box-content {
  height: 100%;
  background-color: white;
}
</style>

 
  
  
</head>

<body translate="no">
  <div id="print_container">
	<div id="grid_container">
		<!-- Following Eye -->
		<div class="box">
			<div class="box-content">
				<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
					<defs>
						<clipPath id="clip-mask">
							<path fill="none" d="M95.86 50S75.33 79.47 50 79.47 4.14 50 4.14 50 24.67 20.53 50 20.53 95.86 50 95.86 50Z" />
						</clipPath>
					</defs>
					<path fill="var(--color-blue)" d="M0 0h100v100H0z" />
					<g class="eye">
						<path fill="var(--color-white)" d="M95.86 50S75.33 79.47 50 79.47 4.14 50 4.14 50 24.67 20.53 50 20.53 95.86 50 95.86 50Z" />
						<g clip-path="url(#clip-mask)">
							<circle class="eye-pupil" cx="50" cy="50" r="20.91" fill="var(--color-black)" />
						</g>
					</g>
				</svg>
			</div>
		</div>
		<!-- ROTATING STARS -->
		<div class="box">
			<div class="box-content">
				<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
					<path fill="var(--color-blue)" d="M0 0h100v100H0z" />
					<path class="star" d="M42.74 25.48c-10.29 0-18.64-8.34-18.64-18.64 0 10.29-8.34 18.64-18.64 18.64 10.29 0 18.64 8.34 18.64 18.64 0-10.29 8.34-18.64 18.64-18.64Z" fill="var(--color-white)" />
					<path class="star" d="M94.54 25.48c-10.29 0-18.64-8.34-18.64-18.64 0 10.29-8.34 18.64-18.64 18.64 10.29 0 18.64 8.34 18.64 18.64 0-10.29 8.34-18.64 18.64-18.64Z" fill="var(--color-white)" />
					<path class="star" d="M42.74 74.52c-10.29 0-18.64-8.34-18.64-18.64 0 10.29-8.34 18.64-18.64 18.64 10.29 0 18.64 8.34 18.64 18.64 0-10.29 8.34-18.64 18.64-18.64Z" fill="var(--color-white)" />
					<path class="star" d="M94.54 74.52c-10.29 0-18.64-8.34-18.64-18.64 0 10.29-8.34 18.64-18.64 18.64 10.29 0 18.64 8.34 18.64 18.64 0-10.29 8.34-18.64 18.64-18.64Z" fill="var(--color-white)" />
				</svg>
			</div>
		</div>
		<!-- MORPHING BOXES -->
		<div class="box">
			<div class="box-content">
				<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 200">
					<defs>
						<clipPath id="a">
							<path fill="none" d="M0 0h100v100H0z" />
						</clipPath>
					</defs>
					<path fill="var(--color-blue)" d="M0 0h100v100H0z" />
					<g clip-path="url(#a)">
						<g id="circles">
							<g class="circle">
								<circle cx="50" cy="50" r="50" fill="var(--color-white)" />
								<path d="M100 50c0 27.61-22.39 50-50 50V0c27.61 0 50 22.39 50 50Z" fill="var(--color-black)" />
							</g>
							<g class="circle">
								<circle cx="50" cy="250" r="50" fill="var(--color-white)" />
								<path d="M100 250c0 27.61-22.39 50-50 50V200c27.61 0 50 22.39 50 50Z" fill="var(--color-black)" />
							</g>
							<g class="circle">
								<circle cx="50" cy="150" r="50" fill="var(--color-white)" />
								<path d="M0 150c0-27.61 22.39-50 50-50v100c-27.61 0-50-22.39-50-50Z" fill="var(--color-black)" />
							</g>
						</g>
					</g>
				</svg>
			</div>
		</div>
		<!-- HALF CIRCLES -->
		<div class="box">
			<div class="box-content">
				<svg id="morph-boxes" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
					<path fill="var(--color-blue)" d="M0 0h100v100H0z" />
					<path id="morph-box-1" class="morph-box" d="M28.88 8.4H9.87v19.01l19.01 19.01h19.01V27.41L28.88 8.4z" fill="var(--color-black)" />
					<path id="box-top-1" d="M9.87 8.4h19.01v19.01H9.87z" fill="var(--c.........完整代码请登录后点击上方下载按钮下载查看

网友评论0