私もインタラクティブなページを作りましょう.
19809 ワード
fade-効果による効果
開発が始まったばかりの頃は、通常機能を中心にしていました.
当たり前のことですが、機能中心の開発で、結果は私がやったほど満足できないことが多いです.この場合、結果の品質を向上させる非常に簡単な方法があります.
その中でもFade-effectを選びました
フェードアウト-効果
個人的には、簡潔で直感的なページの例だと思います.
「ログイン」ページには、各アイコンに独自の機能があり、スクロールしてユーザーに動的な応答を提供するアイコンがあります.
fade-effectを使用すると、より高度なページを作成できます.
3つのfade効果を実現する方法
この記事では、3つの方法を紹介しています.
1.jqueryの使い方
jqueryを使用してスクロールの位置を決定し、fade効果を生成する方法
これは私が探した最も古典的で、最も例のある方法です.
jqueryを使用してスクロールの位置を検索し、位置に基づいて各エンティティの透明度とスライド値を指定し、cssを使用してスタイルを変更します.
#メリット
古典的な方法なので、いろいろな例があります.
#欠点
jqueryとfade効果を使用するすべてのエンティティは、古典的な方法を使用することによって多くのオーバーヘッドを発生します.
コード実装
$(window).on("load", function () {
function fade() {
let animation_height = $(window).innerHeight() * 0.5;
let ratio = Math.round((1 / animation_height) * 10000) / 10000;
$(".fade").each(function () {
let objectTop = $(this).offset().top;
let windowBottom = $(window).scrollTop() + $(window).innerHeight();
if (objectTop < windowBottom) {
if (objectTop < windowBottom - animation_height) {
$(this).css({
transition: "opacity 0.1s linear",
transition: "left 0.1s linear",
opacity: 1,
left: "0px",
});
} else {
$(this).css({
transition: "opacity 0.5s linear",
opacity: (windowBottom - objectTop) * ratio,
transition: "left 0.5s linear",
left: `${200 * (1 - (windowBottom - objectTop) * ratio)}px`,
});
}
} else {
$(this).css({
opacity: 0,
left: "200px",
});
}
});
}
$(".fade").css({
opacity: 0,
left: "200px",
});
fade();
$(window).scroll(function () {
fade();
});
});
.fade {
position: relative;
}
<section class="fade" id="intro">
</section>
2.aosライブラリの使用方法
最もポピュラーなAnimation OnScollライブラリの使用方法
これは私が探した最も簡単な方法です.
大衆化されたオープンソースなので、いろいろな効果があります(Flip、Slide、Zoom、Anchor、Easing).
さらにreadmeの各オプションは、実装方法をよくリストしているので、これらのオプションを読んで従うことができます.
#メリット
優れた利便性、機能性
#欠点
まだ見つかっていません.
多くの場合、ほとんどの機能が発売され、準備が整っています.
しかし、最大の問題は、私はこの事実を知らないことです.
3.交差点観測器の利用方法
クロスオブザーバは、ビューポートと交差する領域を非同期で観察する機能を提供します。
つまり、現在の画面に表示されているエンティティが見つかり、何かを提供します.
したがって、この関数を使用すると、追跡するエンティティを位置決めしてobserverに登録し、そのエンティティがビューポートに入るときに実行する操作を定義できます.その後、セグメントは必要な操作を実行します.(ビューポートに入るとき)
コード実装
const targets = document.querySelectorAll(".fade-class");
const options = { root: null, threshold: 0.1, rootMargin: "-0px" };
const observer = new IntersectionObserver(function (entries, observer) {
entries.forEach((entry) => {
const container = entry.target;
if (entry.isIntersecting) {
container.classList.add("fade-in");
} else {
container.classList.remove("fade-in");
}
});
}, options);
targets.forEach((target) => {
observer.observe(target);
});
.fade-class {
position: relative;
left: 200px;
opacity: 0;
transition: left 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.5s linear;
}
.fade-in {
transition: left 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.5s linear;
left: 0px;
opacity: 1;
}
<section class="fade-class" id="intro">
</section>
終わりの時。
この3つの方法で実施した.
個人的には、快適さを選ぶ順番は以下の通りです.
視覚的な効果だけでなく、より多くの機能が必要な場合は、交差点の観察者をお勧めします.
jqueryは書かないで
みなさんのFADE効果の実現方法は何ですか?友達の秘訣もコメントでシェアしましょう
Reference
この問題について(私もインタラクティブなページを作りましょう.), 我々は、より多くの情報をここで見つけました https://velog.io/@kangkyeungseok/making-interactivepage-with-scrollテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol