精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

螺旋文字滾動(dòng)特效源碼解析,你學(xué)會(huì)了嗎?

開(kāi)發(fā) 前端
通過(guò)結(jié)合 JavaScript 和 CSS,我們成功實(shí)現(xiàn)了一個(gè)動(dòng)態(tài)的螺旋文字滾動(dòng)特效。該特效不僅展示了字符的動(dòng)態(tài)變化,還通過(guò)延遲時(shí)間結(jié)合動(dòng)畫效果增強(qiáng)了視覺(jué)吸引力。

圖片圖片

如圖所示,今天看到一個(gè)很炫酷的雙文字螺旋滾動(dòng)特效,兩行文字呈螺旋狀變化,在網(wǎng)站中這樣的效果對(duì)用戶很有吸引力。本文將基于原網(wǎng)站解析如何實(shí)現(xiàn)這個(gè)炫酷的效果,基于這個(gè)動(dòng)圖可以分析出需要實(shí)現(xiàn)的要點(diǎn):

  • 文字呈螺旋狀滾動(dòng)
  • 滾動(dòng)過(guò)程中文字大小變化
  • 動(dòng)畫過(guò)程無(wú)縫鏈接
  • 兩行文字滾動(dòng)

實(shí)現(xiàn)過(guò)程

文字展示

為了方便更改文案將文案定義變量,通過(guò)JS代碼動(dòng)態(tài)創(chuàng)建DOM,定義文案、螺旋的角度以及動(dòng)畫的持續(xù)時(shí)間:

const words = "螺旋文字滾動(dòng)特效";
const ANGLE = 360;
const ANIMATION_DURATION = 4000;

將文案創(chuàng)建元素添加到頁(yè)面中:

const characters = words.split("").forEach((char, i) => {
  const createElement = (offset) => {
    const div = document.createElement("div");
    div.innerText = char;
    div.classList.add("character");
    div.setAttribute("data-offset", offset);
    return div;
  };

  document.querySelector("#spiral").append(createElement(0));
  document
    .querySelector("#spiral2")
    .append(createElement(-1 * (ANIMATION_DURATION / 2)));
});

因?yàn)橛?行文字滾動(dòng),所以這里添加了2個(gè)spiral。

<div id="spiral" class="spiral"></div>
<div id="spiral2" class="spiral"></div>

給 spiral 設(shè)置flex布局,此時(shí)的頁(yè)面效果如下:

.spiral{
  display: flex;
  align-items: center;
  gap: 10px;
  position: absolute;
  color: #e0ecef;
  font-family: "sans-serif";
}

圖片圖片

讓文字動(dòng)起來(lái)

這里的動(dòng)畫基于CSS Houdini @property實(shí)現(xiàn),首先定義一個(gè)自定義屬性--angle,接受角度值,初始值為0度。

@property --angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

設(shè)置關(guān)鍵幀動(dòng)畫,修改定義的--angle屬性從0度旋轉(zhuǎn)到360度。

@keyframes spiral {
    0% { --angle: 0deg; }
    100% { --angle: 360deg; }
}

給每個(gè)文字的增加animation動(dòng)畫關(guān)聯(lián)定義的關(guān)鍵幀動(dòng)畫spiral。

.character{
  transform: translateY(calc(sin(var(--angle)) * 100px)) scale(calc(cos(var(--angle)) * 0.5 + 0.5));
  animation: spiral 4s linear infinite;
}

重點(diǎn)代碼transform變換,使用transform屬性結(jié)合calc函數(shù)和三角函數(shù)來(lái)實(shí)現(xiàn)Y軸的正弦波形偏移和縮放效果。

同時(shí)在動(dòng)畫中應(yīng)用了前面定義的spiral動(dòng)畫。結(jié)合這兩個(gè)函數(shù),transform 屬性效果如下:

  • Y 軸位移: 元素根據(jù) --angle 的值在 Y 軸上上下移動(dòng),形成波動(dòng)效果。
  • 縮放效果: 元素的大小根據(jù) --angle 的值進(jìn)行動(dòng)態(tài)縮放,形成從小到大或從大到小的變化。

此時(shí)的動(dòng)畫效果:

圖片圖片

螺旋滾動(dòng)

此時(shí)我們的文字已經(jīng)滾動(dòng)起來(lái)了,只需要最后一步關(guān)鍵的代碼就可以實(shí)現(xiàn)螺旋滾動(dòng)效果,仔細(xì)看原始效果就能發(fā)現(xiàn)其實(shí)每個(gè)文字滾動(dòng)的動(dòng)畫軌跡都是一樣的,唯一的區(qū)別就是執(zhí)行的動(dòng)畫延遲時(shí)間不同,形成了一個(gè)波動(dòng)起伏的效果。

增加延遲動(dòng)畫CSS,由于我們的文字是通過(guò)JS創(chuàng)建的,所以需要在 createElement 中增加以下代碼即可,根據(jù)動(dòng)畫持續(xù)時(shí)間和當(dāng)前文字索引計(jì)算延遲時(shí)間:

div.style.animationDelay = `-${i * (ANIMATION_DURATION / 16) - offset}ms`

由于 --angle 設(shè)置了關(guān)鍵幀動(dòng)畫,是一個(gè)動(dòng)態(tài)變化的變量,這段代碼會(huì)使得元素在頁(yè)面上呈現(xiàn)出螺旋或波動(dòng)的動(dòng)畫效果,增強(qiáng)視覺(jué)吸引力。

此時(shí)我們的動(dòng)畫效果基本就完成了,如下所示:

圖片圖片

兼容火狐

由于Firefox不支持@property動(dòng)畫,原作者寫了火狐兼容代碼,使用JavaScript來(lái)實(shí)現(xiàn)動(dòng)畫效果。

定義一個(gè)animation動(dòng)畫函數(shù),使用 requestAnimationFrame 方法實(shí)現(xiàn)平滑的動(dòng)畫效果。

const animation = () => {
  ANGLE -= 1; 
  //...
  requestAnimationFrame(animation);
};

在動(dòng)畫函數(shù)中遍歷所有文字元素來(lái)設(shè)置動(dòng)畫。

document.querySelectorAll(".spiral *").forEach((el, i) => {
  // ...
});

計(jì)算Y軸偏移和縮放,使用三角函數(shù)計(jì)算每個(gè)元素的Y軸偏移量和縮放比例:

const translateY = Math.sin(ANGLE * (Math.PI / 120)) * 100;
const scale = Math.cos(ANGLE * (Math.PI / 120)) * 0.5 + 0.5;

設(shè)置動(dòng)畫延遲,根據(jù)元素索引和數(shù)據(jù)屬性data-offset計(jì)算動(dòng)畫的延遲時(shí)間。

const offset = parseInt(el.dataset.offset);
const delay = i * (ANIMATION_DURATION / 16) - offset;

最后動(dòng)態(tài)設(shè)置CSS變換屬性transform來(lái)應(yīng)用Y軸偏移和縮放。在定時(shí)器中使用delay延遲時(shí)間執(zhí)行動(dòng)畫。

setTimeout(() => {
  el.style.transform = `translateY(${translateY}px) scale(${scale})`;
}, delay);

火狐瀏覽器執(zhí)行動(dòng)畫函數(shù)。

let isFirefox = typeof InstallTrigger !== 'undefined';

if(isFirefox){
  animation();
}

最后

通過(guò)結(jié)合 JavaScript 和 CSS,我們成功實(shí)現(xiàn)了一個(gè)動(dòng)態(tài)的螺旋文字滾動(dòng)特效。該特效不僅展示了字符的動(dòng)態(tài)變化,還通過(guò)延遲時(shí)間結(jié)合動(dòng)畫效果增強(qiáng)了視覺(jué)吸引力。本質(zhì)實(shí)現(xiàn)這個(gè)效果是不需要 JavaScript,為了兼容火狐和動(dòng)態(tài)創(chuàng)建文案DOM才使用了相關(guān) JavaScript。有興趣的可以嘗試使用純CSS實(shí)現(xiàn)這個(gè)炫酷的螺旋文字滾動(dòng)特效。

責(zé)任編輯:武曉燕 來(lái)源: 南城大前端
相關(guān)推薦

2023-08-26 21:34:28

Spring源碼自定義

2023-06-26 13:08:52

GraphQL服務(wù)數(shù)據(jù)

2023-02-24 08:32:50

CSS漸變屬性

2022-10-18 17:59:46

Bootstrap源碼父類

2025-01-02 10:02:44

2024-02-05 13:52:30

?Thread對(duì)象強(qiáng)引用

2023-12-27 07:31:45

json產(chǎn)品場(chǎng)景

2024-10-11 09:15:33

2024-09-06 07:29:05

2022-12-22 08:14:54

2024-01-02 12:05:26

Java并發(fā)編程

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2024-01-19 08:25:38

死鎖Java通信

2023-01-10 08:43:15

定義DDD架構(gòu)

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺(tái)工具

2024-04-01 08:29:09

Git核心實(shí)例

2025-01-14 08:32:55

JWT令牌.NET

2022-07-13 08:16:49

RocketMQRPC日志

2023-03-26 22:31:29

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一级黄色录像大片| 欧美日韩国产丝袜另类| 欧美久久久久免费| 国产另类自拍| 青草影院在线观看| 婷婷激情成人| 又污又黄的网站| 最新真实国产在线视频| 高潮久久久久久久久久久久久久 | 国语自产在线不卡| 国产在线观看中文字幕| 91亚洲欧美| 国产91丝袜在线播放九色| 久久精品青青大伊人av| wwwwxxxx日韩| www.在线视频.com| 日本美女一区二区三区视频| 亚洲欧洲第一视频| 青青在线视频观看| 美女做暖暖视频免费在线观看全部网址91 | 免费一区二区三区四区| 99久久国产综合精品麻豆 | 国产一线二线在线观看| 国产精品一区二区无线| 欧美成人高清视频| 人妻精品久久久久中文字幕69| 乱人伦中文视频在线| 极品尤物av久久免费看| 欧美大奶子在线| 久久久久久久毛片| 亚洲国产伊人| 一本在线高清不卡dvd| 欧美精品一区三区在线观看| 免费看污视频的网站| 成人毛片在线| 欧美一区二区三区在线观看视频| wwwjizzjizzcom| 天堂av中文字幕| 久久一区二区三区超碰国产精品| 正在播放欧美视频| 日本人视频jizz页码69| 在线网址91| av在线这里只有精品| 粉嫩绯色av一区二区在线观看| 亚洲精品国产电影| 能在线观看的av| 五月香视频在线观看| 国产一区二区三区精品视频| 国内精品久久久久影院优 | 午夜精品国产精品大乳美女| 亚洲精品www久久久| 一区二区三区韩国| 日韩大片欧美大片| 欧美国产一区二区| 成人免费在线网址| 九九视频在线观看| 精品在线播放| 91精品国产综合久久精品| 亚洲成人福利在线| 大香伊人久久| 国产在线观看网站| 国产精品探花在线观看| 欧美日韩免费视频| 大西瓜av在线| 成人全视频高清免费观看| 久久久久久久久久久黄色 | 色中文字幕在线观看| 性生活免费网站| 欧美资源在线| 九九久久久久99精品| 毛片网站免费观看| 9l视频自拍蝌蚪9l视频成人 | 在线免费av片| 精品一区二区在线视频| 国内精品久久久久久久久| 黄色激情视频在线观看| 欧美影院三区| 欧美专区18| 欧美一级专区免费大片| 人妻 丝袜美腿 中文字幕| 一二三四视频在线中文| 最新国产成人在线观看| 欧美日韩在线不卡一区| 在线视频婷婷| 一区二区在线观看视频| 亚洲韩国在线| 三级视频在线播放| 成人午夜免费电影| 91免费看网站| 国产精品欧美综合亚洲| 日本sm残虐另类| 91久久久久久久久久久| 欧美在线视频精品| 成人高清网站| 国产一区二区三区免费看| 国产精品一区二区av| 青青草免费在线| 成人影院网站ww555久久精品| 成人国产精品免费观看视频| 99精品欧美一区二区三区综合在线| 国产午夜精品麻豆| 精品人妻二区中文字幕| 香蕉久久久久久| 精品少妇一区二区| 美女流白浆视频| 狠狠做深爱婷婷综合一区| 久久国产精品99国产精| 五月婷婷激情视频| 久久国产精品久久久久久电车| 国产日韩欧美成人| 波多野结衣二区三区| 久久一区国产| 国产伦精品一区二区三区视频免费 | 国产精品亚洲成人| 日韩不卡av| 看电影就来5566av视频在线播放| 婷婷色在线视频| 国产在线视频一区二区| 热re99久久精品国产99热| 十九岁完整版在线观看好看云免费| 国产成人av电影| 亚洲精品成人自拍| 一区二区乱码| 欧美精品一区男女天堂| 一级特级黄色片| 日本午夜精品| 亚洲性无码av在线| 亚洲综合第一区| 天天操综合网| 欧美大片第1页| 日韩毛片在线播放| 国产精品资源站在线| 亚洲精品一区二区三区蜜桃久| 在线免费av资源| 亚洲精品电影网在线观看| 国产性生活网站| 99国产精品99久久久久久粉嫩| 亚洲一区日韩精品中文字幕| 4438x亚洲最大成人网| 97超碰人人爽| 视频精品国内| 亚洲精品动漫100p| 五月天婷婷网站| 国产成人精品三级| 久久久久国产精品视频| 成人免费高清在线播放| 黑人巨大精品欧美一区二区一视频 | aaa人片在线| 日产欧产美韩系列久久99| 久久久久一区二区| 92国产精品| 欧美肥妇毛茸茸| www.黄色com| 国产精品v亚洲精品v日韩精品| 亚洲精品日韩专区silk| 欧美美女15p| www.爱爱.com| 久久午夜电影网| 韩国黄色一级大片| 自拍视频在线看| 亚洲乱码一区av黑人高潮| 欧美特级一级片| 国产美女久久久久| 台湾无码一区二区| 草莓视频成人appios| 欧美成人激情免费网| 久久久久黄色片| av亚洲精华国产精华精华| 无码精品a∨在线观看中文| 亚洲成人一品| 欧美激情一区二区久久久| 国产精品无码一区| 国产精品二区一区二区aⅴ污介绍| 黄色片网址在线观看| 伊人亚洲精品| 尤物yw午夜国产精品视频| 福利一区二区三区四区| 羞羞影院欧美| 亚洲日本va在线观看| 97xxxxx| 欧美三级三级| 欧美最顶级的aⅴ艳星| 国产黄色一区二区| 国产精品美女久久久久aⅴ| 日本一区二区黄色| 欧美a级成人淫片免费看| 国产97色在线|日韩| 五月婷婷六月丁香| 亚洲二区在线观看| 九色91porny| 亚洲永久视频| 久久99久久99精品蜜柚传媒| 亚洲成人人体| 精品中文字幕在线2019| 青青草免费在线| 欧美一级欧美一级在线播放| 成年人网站在线观看视频| 日韩精彩视频在线观看| 免费99视频| 男人午夜视频在线观看| 亚洲第一导航| missav|免费高清av在线看| 欧美性猛交xxxxx免费看| 国产a级黄色片| 精品成人久久| 国产精品二区三区四区| h片在线免费观看| 91精品欧美福利在线观看| 日产欧产va高清| 一区在线播放视频| 中文字幕在线免费看线人| 日韩午夜免费视频| 爱爱爱视频网站| 97色婷婷成人综合在线观看| 97国产精品视频人人做人人爱| 在线国产情侣| 国产成人精品三级麻豆| 亚洲日本中文字幕| 成人免费一级片| 亚洲国产人成综合网站| 性生交大片免费全黄| 久久品道一品道久久精品| 久久久久亚洲精品成人网小说| 91日韩精品视频| 99热这里只有精品首页| 国产精品热视频| 五月天婷婷在线视频| 国产探花一区| 欧美精品九九久久| 搞黄网站在线观看| 日韩视频免费在线| 中文字幕一区二区三区人妻四季| 亚洲国产高清在线观看视频| 加勒比av中文字幕| 丝袜国产日韩另类美女| 欧美日韩亚洲一| 精品96久久久久久中文字幕无| mm131午夜| 97欧美在线视频| 亚洲精品在线免费看| 精品免费视频| 色噜噜色狠狠狠狠狠综合色一| 永久免费观看精品视频| 国产精品一区专区欧美日韩| a级影片在线| www高清在线视频日韩欧美| 成人在线播放视频| 亚洲欧美在线免费观看| 你懂的视频在线观看| 亚洲精品之草原avav久久| 亚洲av片在线观看| 精品视频在线播放| 欧美精品久久久久久久久久丰满| 日韩精品中文字幕在线| 男人天堂综合| 一区二区三区黄色| 淫片在线观看| 久久视频精品在线| 亚洲 欧美 激情 小说 另类| 亚洲国产精品高清久久久| 又污又黄的网站| 4438x成人网最大色成网站| av小说天堂网| 亚洲国产精品资源| 精品欧美不卡一区二区在线观看| 亚洲香蕉伊综合在人在线视看| 国产三级在线免费| 亚洲成av人片在线观看香蕉| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 亚洲色图激情小说| av一区在线观看| 美女久久久久久久| cao在线视频| 国产91在线播放精品91| 国产精品久久久久久久久久辛辛 | 国产人成精品一区二区三| 伊人婷婷久久| 欧美成人国产| 亚洲精品中文字幕乱码三区不卡 | 中文字幕 日韩有码| 欧美亚男人的天堂| 日本网站在线免费观看| 日韩欧美亚洲国产一区| 中文字幕 自拍偷拍| 99久久亚洲精品| 中文字幕久精品免费视频| 国产福利片在线| 日韩视频―中文字幕| 丁香花在线高清完整版视频 | 五月激情久久| 久久精品一区中文字幕| 国产网红在线观看| 国产精品激情自拍| 亚洲性受xxx喷奶水| 国产美女搞久久| 精品av导航| 成人激情av| 国产区一区二| 久久久com| 一精品久久久| 女女百合国产免费网站| 午夜综合激情| av在线天堂网| 国产精品久久久久久妇女6080 | 污污视频在线看| 亚洲欧美日本精品| 国产成人午夜| 国产精品久久久久久搜索| 国产成人精品亚洲线观看| 亚洲精品欧美精品| 在线亚洲观看| 中文字幕制服丝袜| 国产精品高潮呻吟久久| 日日噜噜噜噜人人爽亚洲精品| 日韩一区二区免费在线电影| 粉嫩av在线播放| 69久久夜色精品国产69乱青草| 欧美男男tv网站在线播放| 欧美在线播放视频| 姬川优奈av一区二区在线电影| 91视频网页| 久久久久久免费视频| 中文字幕在线中文| 毛片av一区二区三区| 亚洲天堂2018av| 久久伊99综合婷婷久久伊| 久久精品视频国产| 欧美日韩中文字幕在线| 国产91麻豆视频| 亚洲精品视频免费| 国产社区精品视频| 国产精品美女主播| 亚洲第一二三区| 欧美激情中文字幕乱码免费| 国产精品777777| 欧美性高潮在线| 少妇无码一区二区三区| 欧美激情中文网| 51vv免费精品视频一区二区| 久久精品国产精品国产精品污| 一本到12不卡视频在线dvd| 97人人爽人人| 国产黑丝在线一区二区三区| 欧美成人在线免费视频| 污视频网站免费观看| 欧美国产乱视频| 51社区在线成人免费视频| 人妻激情另类乱人伦人妻| 好看的日韩av电影| 成人三级做爰av| 亚洲电影在线免费观看| 欧美自拍偷拍一区二区| 国内伊人久久久久久网站视频| 红杏aⅴ成人免费视频| 黄色www网站| 久久蜜桃av一区精品变态类天堂| 99久久久无码国产精品免费蜜柚| 亚洲日本aⅴ片在线观看香蕉| 亚洲第一二三四区| 亚洲巨乳在线观看| 久久国产精品第一页| 老湿机69福利| 精品国产欧美一区二区| 多野结衣av一区| 亚洲精品免费在线| 国产伦理在线观看| 午夜天堂影视香蕉久久| 欧美日韩a v| 深夜福利亚洲导航| 欧美激情护士| 欧美专区一二三 | 欧美精品momsxxx| 在线观看高清免费视频| 亚洲人成亚洲人成在线观看图片 | 精品不卡一区二区| 在线观看视频99| 无码国模国产在线观看| 国产极品尤物在线| 国产一区二区三区四区五区入口 | 在线视频欧美精品| 理论片中文字幕| 日本精品视频在线| 91精品国产乱码久久久久久久 | 国产农村妇女毛片精品| 亚洲天堂成人在线视频| 欧美亚洲福利| 婷婷无套内射影院| 韩日av一区二区| 美女在线免费视频| 天堂电影一区| 久久综合九九| 国内精品国产三级国产a久久| 天天插天天操天天干| 91.麻豆视频| xxx在线免费观看| 在线观看成人一级片| jiyouzz国产精品久久| 亚洲在线观看av| 欧美中文字幕在线观看| 欧美一区二区三区久久精品茉莉花|