framer-motion を使用してウェブサイトのランディング ロゴを作成する方法
3681 ワード
独自の Web サイトを構築していますか、それとも堅牢なランディング ページを作成するプロジェクトに取り組んでいますか?
この記事はこの目的のためのもので、映画のような方法で表示、アニメーション化、フェードするロゴを作成するための非常に最小限で簡単な手順を説明します.
このチュートリアルでは、react を使用し、framer-motion パッケージのサポートにより、すべてがスムーズかつ簡単になります.
App.js コンポーネント内
フォーム コンポーネントは重要ではありません.それは何でもかまいません.考えられることの 1 つは、アプリの残りの部分です.
Header.js コンポーネント内
settimeout は、ロゴがページの最初の読み込み時に一度だけ表示されることを保証します.
Logo.js コンポーネント内
ここでは、オンラインで見つけた無料の svg を使用しました.これは、開始時と終了時のアニメーション、および両方の間の遷移を指定するバリアントを含むフレーマーモーション パッケージです.
ページを更新すると、更新するたびにランディング ロゴの Viola が表示されます.
この記事がお役に立てば幸いです.偉大なフレーマーモーションのドキュメントをもっと見ることをお勧めします.
この記事はこの目的のためのもので、映画のような方法で表示、アニメーション化、フェードするロゴを作成するための非常に最小限で簡単な手順を説明します.
このチュートリアルでは、react を使用し、framer-motion パッケージのサポートにより、すべてがスムーズかつ簡単になります.
App.js コンポーネント内
import Form from "./components/Form";
import Header from "./components/Header";
function App() {
return (
<div className="h-screen flex justify-center items-center">
<Header />
<Form />
</div>
);
}
export default App;
フォーム コンポーネントは重要ではありません.それは何でもかまいません.考えられることの 1 つは、アプリの残りの部分です.
Header.js コンポーネント内
import { useEffect, useState } from "react";
import Logo from "./Logo";
export default function Header() {
const [isVisible, setIsVisible] = useState(true);
useEffect(() => {
setTimeout(() => {
setIsVisible(false)
}, 4000);
}, [])
return (
<div>
{isVisible && <Logo />}
</div>
)
}
settimeout は、ロゴがページの最初の読み込み時に一度だけ表示されることを保証します.
Logo.js コンポーネント内
import { AnimatePresence, motion } from "framer-motion";
const svgVariants = {
initial: {
rotate: -360
},
animate: {
rotate: 0,
transition: {
duration: 1
}
},
exit: {
rotate: -180
}
}
const pathOneVariants = {
initial: {
opacity: 0,
pathLength: 0
},
animate: {
opacity: 1,
pathLength: 1,
transition: {
duration: 2,
ease: 'easeInOut'
}
}
}
const pathTwoVariants = {
initial: {
opacity: 1,
pathLength: 1
},
animate: {
opacity: 0,
pathLength: 0,
transition: {
duration: 2,
delay: 2,
ease: 'easeInOut'
}
}
}
export default function Logo() {
return (
<AnimatePresence>
<motion.div className="fixed top-0 left-0 w-full h-full bg-slate-300 flex justify-center items-center">
<motion.svg xmlns="http://www.w3.org/2000/svg" width="250" height="250" viewBox="0 0 192.755 192.756"
className="rounded-3xl"
variants={svgVariants}
initial="initial"
animate="animate"
exit="exit"
>
<motion.g fill-rule="evenodd" clip-rule="evenodd">
<motion.path fill="#fff" d="M0 0h192.755v192.756H0V0z"
variants={pathOneVariants}
/>
<motion.path d="M127.986 70.51v7.505l-63.217 28.846v-7.743l54.357-24.873L64.769 49.4v-7.744l63.217 28.854zM64.769 122.25v-7.495l63.217-28.852v7.74L73.654 118.5l54.332 24.859v7.741l-63.217-28.85z"
variants={pathTwoVariants}
/>
</motion.g>
</motion.svg>
</motion.div>
</AnimatePresence>
)
}
ここでは、オンラインで見つけた無料の svg を使用しました.これは、開始時と終了時のアニメーション、および両方の間の遷移を指定するバリアントを含むフレーマーモーション パッケージです.
ページを更新すると、更新するたびにランディング ロゴの Viola が表示されます.
この記事がお役に立てば幸いです.偉大なフレーマーモーションのドキュメントをもっと見ることをお勧めします.
Reference
この問題について(framer-motion を使用してウェブサイトのランディング ロゴを作成する方法), 我々は、より多くの情報をここで見つけました https://dev.to/omardiaa48/how-to-create-your-website-landing-logo-with-framer-motion-2bhfテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol