この記事の内容は、純粋な CSS を使用してストライプ錯視アニメーション効果を実現する方法に関するものです (ソースコードが添付されています)。必要な方は参考にしていただければ幸いです。
エフェクトのプレビュー
ソースコードのダウンロード
https://github.com/comehope/front-end-daily-challenges
コード解釈
domを定義します。コンテナには2つの要素が含まれており、それぞれ2つを表しますトラック:
<div> <span></span> <span></span> </div>
中央揃え表示:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background-color: #999; }
子要素のコンテナのサイズとレイアウトを定義:
.container { font-size: 30px; width: calc(13em + 0.5em); height: 8em; display: flex; flex-direction: column; justify-content: space-between; }
明るい色と暗い色の 2 つの色の値を定義:
.container { --dark: #222; --light: #ddd; }
2 つのトラックの輪郭を描画:
.track { width: inherit; height: 2em; border: 1px solid var(--dark); }
は背景です2 つのトラックのパターンは、明るいストライプと暗いストライプが交互になっていますが、2 番目のトラックはグリッドの半分だけオフセットされています:
.track { background: linear-gradient( 90deg, var(--dark) 50%, var(--light) 50% ); background-size: 1em; } .track:nth-child(2) { background-position: 0.5em; }
疑似要素を使用して 2 つの長方形を描画します:
.track { position: relative; display: flex; align-items: center; } .track::before { content: ''; position: absolute; width: 2em; height: 0.8em; background-color: var(--light); }
これら 2 つの長方形を前後に移動します。トラック上:
.track::before { animation: move 5s linear infinite alternate; } @keyframes move { from { left: 0; } to { left: calc(100% - 2em); } }
このとき、2 つの長方形は次々に前進しているように見えますが、実際には同じ瞬間に開始し、同じ速度で移動します。次に真相を明らかにしていきます。
dom に子要素をボタンとして追加します。
<p> <span></span> <span></span> <span>Show me the truth</span> </p>
ボタンのスタイルを設定します:
.toggle { order: -1; width: 10em; height: 2em; border: 2px solid var(--dark); border-radius: 0.2em; font-size: 0.5em; font-family: sans-serif; font-weight: bold; color: black; text-align: center; line-height: 2em; cursor: pointer; user-select: none; }
ボタンのトラック スタイルと同様の背景とマウスオーバー効果を設定します:
.toggle { background-image: linear-gradient(to right, #ddd 50%, #999 50%); background-size: 1em; transition: 0.5s; } .toggle:hover { background-position: 5em; }
ボタンをクリックしたときにトリガーされるセクション スクリプト、トラック要素のスタイルを切り替えます:
let $toggle = document.getElementsByClassName('toggle')[0] let $tracks = Array.from(document.getElementsByClassName('track')) $toggle.addEventListener('click', function() { $tracks.forEach(track => track.classList.toggle('highlights')) })
最後に、スタイルを切り替えた後に答えが表示されます:
.track::before { box-sizing: border-box; border: solid var(--dark); border-width: 0; } .track.highlights::before { background-color: white; border-width: 0.1em; }
これで完了です。
関連する推奨事項:
純粋な CSS を使用してブロック ジャンプをアニメーション化する方法 (ソース コードを添付)
純粋な CSS を使用してリングの回転錯視をアニメーション化する方法 (ソース コードを添付)
以上が純粋な CSS を使用して縞模様の錯視アニメーション効果を実現する方法 (ソースコード添付)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック



