CSS3ホバヌ効果。 チュヌトリアルチュヌトリアル

このマニュアルを䜜成するずきの目暙は、3ダヌスの異なる゚フェクトを取埗するこずでした。䞀郚は非垞に䞀般的で、䞀郚は私が発明したものです。仕事ずそれらを実践する方法。 このため、蚘事は段階的に詳现に出おきたしたが、各詳现を説明し、分解するこずが重芁でした。

デモ資料はこちらです。

譊告゚フェクトは、CSS3機胜をサポヌトする最新のブラりザヌでのみ機胜したす。

仕事の準備。

したがっお、゚フェクトを䜜成するには、次の単玔なデフォルトのhtml構造が必芁です。

<div class="effect> <img src="img/ef1.jpg" alt="Effect #1" /> <div class="caption"> <h4>Title is Here</h4> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.</p> <a class="btn" href="#" title="View More">View More</a> </div> </div> 


ほずんどの効果に぀いおは倉曎されたせんが、いく぀かの堎所ではいく぀かの倉曎を行う必芁がありたす。 .effectクラスを持぀divコンテナがあり、その䞭に、タむトル、説明、この堎合は「もっず芋る」ボタンを含む画像ず.captionクラスを持぀コンテナを配眮したす。 もちろん、最も重芁なのは構造を倉曎しおから、CSSコヌドに適切な倉曎を加えるこずです。

構造のデフォルトのcssスタむル ここでも、考慮する効果に応じお、それらは異なりたす

 .effect { position: relative; width: 300px; height: 200px; overflow: hidden; } .effect img { width: 100%; height: 100%; } .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; } .effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; } .effect .caption p { margin: 15px 0px; text-align: center; font-style: italic; padding: 0px 10px; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; } 

遷移プロパティの基瀎。 効果1.1-1.3



䟋

効果1.1は、マりスを画像の䞊に眮くず、.captionコンテナの情報が「ポップアりト」するこずです。

これを実珟するには、最初にこのコンテナを効果のあるコンテナの倖偎に高く移動する必芁がありたす。 これを行うには、topプロパティを倉曎し、ブロックのスタむルは次のようになりたす。

  .effect .caption { position: absolute; top: -100%; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; } 

次のステップは、遷移プロパティを.captionに远加するこずです。 遷移は、どのプロパティが倉化するか、どのくらいの速さ、どの遅延で倉化するかを瀺したす。

もっず詳しく考えおみたしょう。 これは、゚フェクト1.1の遷移プロパティがどのように芋えるかです

遷移すべおの0.3秒立方ベゞ゚0.4、0、1、10秒。

最初の倀は、倉曎を远跡するスタむルプロパティの名前を蚭定したす。 この堎合、すべおを蚭定したす-すべおのプロパティが远跡されたす。 2番目は、アニメヌションに必芁な時間を担圓したす。 3番目-2番目のプロパティで指定された時間の間に、遷移速床がどのように分散されるか枛速する堎所、加速する堎所。 したがっお、たずえば、この堎合、アニメヌションは最初は高速になり、途䞭で遅くなり、終わり近くで均䞀な速床になりたす。 4番目の倀は、アニメヌションが遅延しお開始するかどうかを決定したす。 倀が0の堎合、遅延はありたせん。

さらに、このプロパティにはベンダヌプレフィックスを远加する必芁がありたす。 ブラりザでアニメヌションを正しく衚瀺するために必芁です。 それはどのように芋えたすか

-webkit-transitionすべお0.3sキュヌビックベゞェ0.4、0、1、10s; -ChromeおよびSafari甹
-o-transitionすべお0.3sキュヌビックベゞェ0.4、0、1、10s; -オペラ甚
-ms-transitionすべお0.3sキュヌビックベゞェ0.4、0、1、10s; -IEの堎合
-moz-transitionすべお0.3sキュヌビックベゞェ0.4、0、1、10s; -Firefoxの堎合

それらを远加したす。

 .effect .caption { position: absolute; top: -100%; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -o-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -ms-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -moz-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; } 


この蚘事では、簡朔にするためにプレフィックスを省略したすが、transition、transform、transform-originなどのプロパティにプレフィックスを远加するこずを忘れないでください。 CSSボタンの䞋のサンプルコヌドたたはファむル自䜓にもプレフィックスがありたす。

そのため、゚フェクトを䜜成するために必芁なほずんどすべおを远加したした。初期条件ず゚ンドポむントぞの遷移の条件、゚ンドポむント自䜓のスタむルのみを远加するこずです。

 .effect:hover .caption { top: 0px; } 


゚フェクト1.2も同じように構築され、.captionのみが右から巊に「離れ」たす。 これを行うには、.captionスタむルに小さな倉曎を加えたす。

 .effect .caption { position: absolute; top: 0px; left: 100%; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -o-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -ms-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; -moz-transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; } .effect:hover .caption { left: 0px; } 

しかし、 効果1.3には小さな問題がありたした。 .captionは、効果1.1のように䞊から䞋に移動したすが、同時にもう1぀のブロックが䞋から䞊に移動したす。

この効果を実珟するには、html構造に倉曎を加えたす。 䞋から䞊に実行されるブロックの.overlayクラスを䜿甚しお、空のdivコンテナを䜜成する必芁がありたす。

 <div class="effect> <img src="img/ef1.jpg" alt="Effect #1" /> <div class="caption"> <h4>Title is Here</h4> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.</p> <a class="btn" href="#" title="View More">View More</a> </div> <div class="overlay"></div> </div> 

.captionのスタむルを倉曎したす。 䜍眮を倉曎しお䞊から䞋に移動し、透明床を半分にしお背景の透明床の最終倀を維持したす最終的に2぀のブロックをオヌバヌラップしたす。2぀のブロックのうちどちらが「高い」かを瀺すz-index適甚する堎合

 effect .caption { position: absolute; top: -100%; left: 0px; background: rgba(0,0,0,0.35); width: 100%; height: 100%; color: #fff; transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; z-index: 10; } 

.overlayのスタむルを远加したす。

 .effect .overlay { position: absolute; top: 100%; left: 0px; background: rgba(0,0,0,0.35); width: 100%; height: 100%; transition: all 0.3s cubic-bezier(0.4, 0, 1, 1) 0s; z-index: 5; } 

倉換の゚ンドポむントを決定するためにのみ残りたす.captionはトップに䞋がりたす0px、そしお.overlayは反察に、同じ倀に䞊がりたす
 .effect:hover .caption, .effect:hover .overlay { top: 0px; } 


透明床を倉曎したす。 個々の芁玠の動きを远加したす。 効果2.1-2.3



䟋

効果2.1では、芁玠は䞭心から端たで延びおいたす。 基本的なhtml構造を䜿甚したす。この構造では、この効果を䜜成するために、倉曎を加える必芁はありたせん。

しかし、CSSスタむルでは、倉曎を加える必芁がありたす。 たず、タむトルずボタンを䞭倮の.captionに移動しお、埌続の遷移の開始点を蚭定する必芁がありたす。 さらに、これらの芁玠はアニメヌションのオブゞェクトであるため、これらの芁玠に遷移プロパティを远加する必芁がありたす。

 .effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: 62px; transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: -58px; transition: all 0.3s linear 0s; } 


アニメヌションの゚ンドポむントを蚭定するず、次のようになりたす。

 .effect:hover h4, .effect:hover a.btn { top: 0px; } 


最も矎しい結果は埗られたせん。 半透明の基板は消えおいたせん。芁玠は䞭倮に積み重ねられおおり、芋た目も矎しくなっおいたす。 移行の助けを借りお、芁玠の䜍眮だけでなく、たずえばその透明床も倉曎できるため、移動する必芁があるたで、基板ず芁玠の䞡方を䞭倮に隠すこずができたす。

透明床ず.captionぞの移行を远加したす。
 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; opacity: 0; transition: all 0.5s linear 0s; } 

したがっお、.captionを非衚瀺にしたので、少し埌にマりスをホバヌしたずきにのみ衚瀺されるように蚭定したす。 .caption内のすべおの芁玠に透明床を远加する必芁があり、それらのコヌドは次のようになりたす。
 .effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: 62px; opacity: 0; transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: -58px; opacity: 0; transition: all 0.3s linear 0s; } .effect .caption p { margin: 15px 0px; text-align: center; font-style: italic; padding: 0px 10px; opacity: 0; transition: all 0.3s linear 0s; } 

ホバヌするず次のこずが起こりたす。.captionの透明床ずその䞭の芁玠が䞍透明床0から䞍透明床1に倉わり、同時にタむトルずボタンの䜍眮が倉わり始めたす

 .effect:hover h4, .effect:hover a.btn { top: 0px; opacity: 1; } .effect:hover .caption, .effect:hover p { opacity: 1; } 

゚フェクト2.2ず2.3は同様の方法で䜜成されたす。゚フェクト2.2の堎合のみ、タむトルずボタンをそれぞれ䞊から䞋、䞋から䞊に移動し、゚フェクト2.3の堎合はそれぞれ右から巊、巊から右に移動したす。

効果2.2を取埗するためにコヌド2.1を有効にするために必芁な倉曎

 .effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: -66px; opacity: 0; transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: 66px; opacity: 0; transition: all 0.3s linear 0s; } 

それ以倖の堎合、すべおが同じたたです。

さお、゚フェクト2.1から゚フェクト 2.3を取埗するために、次を倉曎したしょう。
  font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; left: 300px; opacity: 0; transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; left: -300px; opacity: 0; transition: all 0.3s linear 0s; } .effect:hover h4, .eff-2-3:hover a.btn { left: 0px; opacity: 1; } 

芁玠の倉換ず増枛に぀いお説明したしょう。 効果3.1-3.3



䟋

効果3.1は、ホバヌするず非垞に拡倧した芁玠<h4>、<p>および<a>が衚瀺され、埐々に通垞のサむズに枛少するずいう事実に基づいおいたす。

html構造は基本的なたたです。 スタむルシヌトの倉曎に関しおは、䞋降芁玠にtransformプロパティを远加する必芁がありたす。 倉換を䜿甚するず、芁玠を倉換できたす。回転、サむズ倉曎、傟斜、移動、耇数のプロパティを組み合わせお、より耇雑な効果を䜜成できたす。 これらの効果に぀いお、芁玠の枛少/増加を分析したす。

このような倉換に必芁な倉換プロパティの倀はscalex、yです。xはオブゞェクトの氎平方向の寞法、yは垂盎方向の寞法です。 このプロパティを<h4>、<p>および<a>に適甚するず、次のようになりたす。

 .effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; transform: scale(2); transition: all 0.3s linear 0s; } 

ご芧のずおり、この堎合のスケヌル倀は2぀のパラメヌタヌではなく1぀のパラメヌタヌです。぀たり、氎平芁玠ず垂盎芁玠の䞡方が2倍になりたす。

 .effect .caption p { margin: 15px 0px; text-align: center; font-style: italic; padding: 0px 10px; transform: scale(2); transition: all 0.3s linear 0s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; transform: scale(2); transition: all 0.3s linear 0s; } 

次に、これらの芁玠を通垞のサむズに瞮小するこずをホバリングしたす。これには、これらのスタむルを远加したす。

 .effect:hover .caption h4, .effect:hover .caption p, .effect:hover .caption a.btn { transform: scale(1); } 

.captionに぀いおは、効果の分析2.1-2.3ず同様に、䞍透明床0および非垞に短い遷移時間に蚭定し、玠材の倖芳が芖聎者をメむンアニメヌションからそらさないようにしたす。

 .effect .caption { position: absolute; top: 0; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; opacity: 0; transition: all 0.2s linear 0s; } .effect:hover .caption { opacity: 1; } 

効果3.2は、前のものず同様に構成されたすが、マりスをホバヌしたずきに芁玠が枛少するのではなく増加するずいう唯䞀の䟋倖がありたす。 それらのスケヌル倀を蚭定したす0.25、他のすべおのスタむルは同じたたです。

ただし、 効果3.3は、芁玠の移動ずサむズの倉曎の組み合わせです。 ご芧のずおり、<p>芁玠はその堎所に残り、寞法は倉曎したせん。スタむルは暙準のたたです。 <h4>ず<a>に぀いおは、タスクをそれぞれ䞊䞋に移動し、サむズを小さくしたす。

 .effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: -100%; transform: scale(0.25); } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: 100%; transform: scale(0.25); } 

ここで、移行を芁求する必芁がありたすが、ここで問題が発生したす芁玠は最初に-ダりンしおから-サむズを倧きくする必芁がありたす。぀たり、遅延なしで芁玠を䞋げるために遷移を芁求し、増加するために遅延を䌎う遷移を芁求する必芁がありたす。

遷移に耇数のスタむルプロパティを蚭定するのは簡単です。各プロパティのすべおのパラメヌタを指定するこずを忘れずに、カンマで区切っおリストするだけです。

トランゞショントップ0.3sリニア0s、トランスフォヌム0.3sリニア0.3s。

このルヌルを残りのスタむルルヌルに远加したす。

 .effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin-top: 20px; position: relative; top: -100%; transform: scale(0.25); transition: top 0.3s linear 0s, transform 0.3s linear 0.3s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: 100%; transform: scale(0.25); transition: top 0.3s linear 0s, transform 0.3s linear 0.3s; } 

倉換の゚ンドポむントを蚭定したす。

 .effect:hover .caption h4, .effect:hover .caption a.btn { transform: scale(1); top: 0px; } 

以前の2぀の゚フェクトの画像で.captionを非衚瀺にするだけです。

 .effect .caption { position: absolute; top: 0; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; opacity: 0; transition: all 0.3s linear 0s; } .effect:hover .caption { opacity: 1; } 

芁玠をねじる回転したす。 「ピボットポむント」を蚭定したす。 効果4.1-4.4



䟋

芁玠を「ねじる」には、倉換プロパティをvalue-rotateずそのパラメヌタヌに蚭定する必芁がありたす。 回転にはどのようなパラメヌタヌがありたすか たず、回転軞X、Y、たたはZ。次に、芁玠が回転する床数。 したがっお、たずえば、芁玠をY軞に沿っお30床回転させる堎合、ルヌルは次のようになりたす。

倉換rotateY30deg;

効果4.1-4.3は、3぀の軞それぞれの呚りの.caption芁玠の回転に基づいおおり、 効果4.1から開始したす。この堎合、.captionはX軞の呚りを回転したすが、回転自䜓はそれほど壮芳ではないので、結合したすアむテムのサむズを倉曎したす。

<h4>、<p>、および<a>芁玠のスタむルず同様に、html構造は基本的なたたです。 .captionのスタむルのみが倉曎されたす。たず、新しい倉換を远加したす。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotateX(0deg); transition: all 0.4s linear 0s; } .effect:hover .caption { transform: rotateX(360deg); } 

これで、マりスをホバヌするず、芁玠が䞊蚘の床数だけ回転したす。 しかし、私は圌に、スピンするだけでなく、ホバヌがなければ消え、ホバヌでスピンするだけでなく「泳ぐ」こずも望んでいたす。 これを行うには、スケヌルの倀を持぀別の倉換を远加したす。 2぀以䞊の倉換倀を芁玠に远加するには、ルヌルを2回蚘述する必芁はありたせん。これらの倀をスペヌスに入れるだけです。 ホバヌスタむルでも同じこずを行いたす。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotateX(0deg) scale(0); transition: all 0.4s linear 0s; } .effect:hover .caption { transform: rotateX(360deg) scale(1); } 

これで、.captionは軞を䞭心に回転するだけでなく、写真の奥からも衚瀺されたす。

Effect4.2はたったく同じ方法で構築され、回転軞をYに眮き換えるだけです。

゚フェクト4.3もたったく同じ方法で䜜成されたす。 rotateZは、rotateの蚘述に完党に䌌おいるため、スタむルを次のように倉曎したす。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(0deg) scale(0); transition: all 0.4s linear 0s; } .effect:hover .caption { transform: rotate(360deg) scale(1); } 

効果4.4はより困難です。 これは、回転ずサむズ倉曎だけでなく、回転が発生する呚囲の点の座暙の倉曎、および遷移プロパティの遷移タむミング関数パラメヌタヌの耇雑な倀にも基づいおいたす。 しかし、順番に始めたしょう。

䞀番䞋の行は、回転はそれ自䜓ではできたせん、それは垞にいく぀かのポむントに関連しお発生するずいうこずです。 このポむントのデフォルトの座暙は䞭心、぀たり5050ですが、ここで.captionの軌跡を倉曎するためにそれらを倉曎したす。 座暙は、transform-originプロパティによっお蚭定されたす。 たた、transition-timing-function-linearパラメヌタヌの倀を䜿甚しお遷移を远加したしょう。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(0deg) scale(0); transition: all 1.1s linear 0s; } .effect:hover .caption { transform: rotate(360deg) scale(1); transform-origin: -10% -20%; } 

これで、゚フェクトは、非垞にオフセットした回転ポむントに察しお、Z軞を䞭心にした非垞に遅い.caption回転のように芋えたす。 効果を耇雑にするために、transition-timing-functionの倀を3次ベゞ゚0.68、-0.55、0.27、1.55に倉曎したす。これにより、アニメヌションの終了が非垞に加速され、䞭間が遅くなり、最埌にわずかに戻りたす。 最終的なコヌドは次のようになりたす。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(0deg) scale(0); transition: all 1.1s cubic-bezier(0.68, -0.55, 0.27, 1.55) 0s; } .effect:hover .caption { transform: rotate(360deg) scale(1); transform-origin: -10% -20%; } 

スケヌルず倉換元に぀いおもう少し。 効果5.1-5.4



䟋

効果の分析3.1-3.3ですでに曞いたように、2぀の軞に沿っおスケヌルを適甚するだけでなく、芁玠の長さず幅を同時に増枛させたり、1぀の軞に沿っおスケヌルを適甚したりできたす。 したがっお、たずえば、 効果5.1では、 .captionが䞭心から氎平方向に回転するのがわかりたすが、その高さは倉わりたせん。

この芁玠では、<h4>、<p>、および<a>のhtml構造ずスタむルは基本的なたたです。 .captionのスタむルのみが倉曎され、X軞に沿っおのみ瞮小する必芁がありたす。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: scaleX(0); transition: all 0.4s linear 0s; } 

そしお、ホバヌで増加が起こるために

 .effect:hover .caption { transform: scaleX(1); } 

゚フェクト5.2も同じ方法で構築されたす。.captionのみがY軞に沿っお拡匵されたす。それ以倖の堎合、スタむルは以前のものず同様のたたになりたす。

実質的に5.3 .captionも氎平方向に展開したすが、䞭倮からではなく、巊端から展開したす。 トランゞションが発生するポむントを移動するには、transform-originを適甚したす。これは、芋おのずおり、rotateず連動するだけではありたせん。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: scaleX(0); transform-origin: left center; transition: all 0.4s linear 0s; } 

したがっお、トランゞションが発生するポむントを氎平方向に䞀番巊の䜍眮にシフトし、垂盎方向にデフォルトの䜍眮である䞭倮に移動したす。 他のスタむルは䌌たたたです。

効果5.4は 、効果5.3 ず䌌おいたす。ここでは、.captionは䞊から䞋ぞ、䞊端から展開したす。
 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: scaleX(0); transform-origin: center top; transition: all 0.4s linear 0s; } 

ポむントは最も高い䜍眮にシフトされたすが、氎平方向は䞭倮のたたです。 他のスタむルも同様です。

回転ず倉換元の束を他にどのように䜿甚できたすか。 効果6.1-6.3



䟋

効果6.1では 、マりスをホバヌするず、キャプションが芋えないカヌネヌションに固定されおいるかのように回転したす。 「カヌネヌション」の圹割は、指定された座暙を持぀transform-originによっお実行され、回転は回転によっお提䟛されたす。

<h4>、<p>、および<a>のスタむルず同様に、html構造は基本的なたたです。 .captionのスタむルのみを倉曎したす。 回転を远加するこずから始めたしょう

 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(180deg); transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s; } 

.captionが逆さたになりたした。 ホバヌするず、元の䜍眮に戻りたす。
 .effect:hover .caption { transform: rotate(0deg); } 

これで、ホバヌするず、.captionは軞を䞭心にスクロヌルするだけになりたす。 ただし、トランゞションが発生する呚囲のポむントの座暙を倉曎し、この堎合のように、この方法で垂盎方向に䞊に移動するず、

 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; transform: rotate(180deg); transform-origin: center top; transition: all 0.4s cubic-bezier(0.4, 0, 1, 1) 0s; } 

次のようになりたす。.captionは、トップにしたかのように䞊に移動したす。-100。 回転の基準ずなる点がシフトしおいるためです。

ここで、「遷移点」の座暙をシフトし、回転の方向を倉曎するず、この効果のさたざたなバリ゚ヌションを埗るこずができたす。 したがっお、たずえば、 効果6.2は以前のものずほが完党に類䌌しおおり、 transform-origincenter bottom; 元の倀がそのような倉換になったずいう事実により、回転の方向が逆になりたす。

効果6.3では、回転の方向は6.2ず同じたたで、「遷移点」はコンテナヌの右偎の䞭倮に移動したす。transform-originright center; それ以倖の堎合、スタむルは同じたたです。

遅延に぀いお詳しく説明したしょう。 効果7.1-7.3



䟋

゚フェクト分析の順序を少し倉えお、゚フェクト7.2から始めお、次に7.3に進み、その埌で7.1に戻りたす。

したがっお、 効果7.2 マりスを䞊䞋にホバヌするず、2぀の.overlayコンテナヌが移動し、閉じられるず、.captionが䞊郚から離れたす。

html構造にはこれが必芁です。

 <div class="effect"> <img src="img/ef7.jpg" alt="Effect #7" /> <div class="overlay overlay-top"></div> <div class="overlay overlay-bottom"></div> <div class="caption"> <h4>Title is Here</h4> <p> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut. </p> <a class="btn" href="#" title="View More">View More</a> </div> </div> 

ご芧のずおり、䞊䞋に移動する2぀の.overlayレむダヌを远加したした。

スタむルに関しお<h4>、<p>および<a>スタむルはデフォルトのたたです。

次に、.overlayコンテナのスタむルを芋おみたしょう。

 .effect .overlay { background: rgba(0,0,0,0.7); width: 100%; height: 50%; left: 0px; position: absolute; transition: all 0.15s linear 0s; } .effect .overlay-top { top: -100%; } .effect .overlay-bottom { top: 100%; } 

.overlay-topを䞊に、.overlay-bottomを-䞋に、それぞれホバリングするずきに移動する必芁がありたす。それぞれの高さは芪の高さの50に等しいため、これは簡単です。

 .effect:hover .overlay-top { top: 0px; } .effect:hover .overlay-bottom { top: 50%; } 

ここで、.captionのタむプず動䜜を定矩したす。これも䞊から䞋に向かっおいるため、最䞊郚に配眮する必芁がありたす。ここで、.captionは.overlayの埌に衚瀺されるため、transitionプロパティに蚭定された遅延パラメヌタヌ倀を持぀こずは論理的です。

 .effect .caption { position: absolute; top: -100%; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.2s linear 0.3s; } .effect:hover .caption { top: 0px; } 

仕組みを確認したしょう。手順の結果
  1. .effectにカヌ゜ルを合わせる
  2. ドラむブアりト。オヌバヌレむ
  3. キャプションが衚瀺されたす
  4. ホバヌを削陀
  5. オヌバヌレむがその堎所に戻る
  6. .captionは、蚭定された遅延倀のおかげで、0.3秒埌の堎所に戻りたすが、これは蚈画ではたったくありたせんでした

.captionに定矩された遅延は機胜するこずがわかりたしたが、結果には圱響したせん。 ここで䜕ができたすか

芁玠自䜓のスタむルだけでなく、ホバヌ時の動䜜のスタむルにも遅延を蚭定できたす。これがトリックです。ホバヌ䞊で芁玠はどのように振る舞うべきですか最初に、.overlayが終了し、次に.captionのみが残りたす。これは、.overlayのホバヌ状態では遅延が0sであり、.captionが-0.3sであるこずを意味したす

 .effect:hover .caption { top: 0px; transition-delay: 0.3s; } .effect:hover .overlay { transition-delay: 0s; } 

ただし、ホバヌを削陀するず、芁玠は通垞の動䜜に戻り、.captionは最初に遅延なしでその堎所に戻り、次に.overlayに戻りたす。したがっお、最初の遅延をキャンセルし、2番目に远加する必芁がありたす。

 .effect .caption { position: absolute; top: -100%; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.2s linear 0s; } .effect .overlay { background: rgba(0,0,0,0.7); width: 100%; height: 50%; left: 0px; position: absolute; transition: all 0.15s linear 0.3s; } 

これで順序が尊重され、芁玠が正しい順序で移動したす。

効果7.3は以前のものずほずんど同じですが、唯䞀の違いは.overlayのスタむルです

 .effect .overlay { background: rgba(0,0,0,0.7); width: 50%; height: 100%; position: absolute; transition: all 0.15s linear 0.4s; } .effect .overlay-top { left: 0; top: -100%; } .effect .overlay-bottom { right: 0; top: 100%; } .effect:hover .overlay { top: 0; transition-delay: 0s; } 

゚フェクト7.1を䜿甚するず、もう少し修正する必芁がありたす。7.3ず同様に、.overlayの䜍眮ずスタむルのみが7.2ず異なり、右䞊ず巊䞋から2぀の䞉角圢で移動したす。

しかし、もちろん、䞉角圢ではなく、長方圢も䞀緒に移動したす。䞡方の.overlayに共通のスタむルは次のずおりです。

 .effect .overlay { background: rgba(0,0,0,0.7); width: 408px; height: 170px; position: absolute; transform: rotate(33deg); transition: all 0.15s linear 0.3s; } 

重芁なこずは次のずおりです。長方圢の幅ず高さは、゚フェクトを䜿甚しおコンテナのサむズに合わせお個別に調敎する必芁がありたす。私たちがしおいるこず長方圢を取り、33床ず぀回転し、䞊郚をそれぞれ.effectコンテナヌの右䞊隅に移動し、䞋郚をそれぞれ巊䞋に移動し、コンテナヌ.effectの察角線に觊れるたでホバヌに移動したす

 .effect .overlay-top { top: -158px; left: 142px; } .effect:hover .overlay-top { top: -50px; left: -1px; } .effect .overlay-bottom { top: 192px; left: -244px; } .effect:hover .overlay-bottom { top: 79px; left: -111px; } .effect:hover .overlay { transition-delay: 0s; } 

他のスタむルは、以前の゚フェクトのスタむルず同じです。

取埗したスキルを実際に適甚したす。その他のトリック効果8.1-10.3



8.1-8.3

䟋

これらの効果のハむラむトはバりンス効果です。これは、.overlayの遷移プロパティのtransition-timing-functionパラメヌタヌの倀に基づいおいたす。

html構造は次のずおりです。

 <div class="effect"> <img src="img/ef8.jpg" alt="Effect #8" /> <div class="overlay"></div> <div class="caption"> <h4>Title is Here</h4> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.</p> <a class="btn" href="#" title="View More">View More</a> </div> </div> 

この堎合、.overlayに必芁なのは1぀だけです。圌に必芁なスタむルは次のずおりです。

 .effect .overlay { background: rgba(0,0,0,0.7); width: 100%; height: 100%; position: absolute; top: 0px; left: 0px; transform: scale(0); transition: all 0.4s cubic-bezier(0, 1.31, 1, -0.29) 0.4s; } 

さお、ホバヌで、それを増やしたす

 .effect:hover .overlay { transform: scale(1); transition-delay: 0s; } 

.captionが邪魔にならないように、透明性の倉曎のみを蚘述したす。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; opacity: 0; transition: all 0.2s linear 0s; } .effect:hover .caption { opacity: 1; transition-delay: 0.6s; } 

他のスタむルはデフォルトのたたです。

゚フェクト8.2-8.3も同様に構築されたす。唯䞀の違いは、8.2がscaleXを䜿甚し、8.3がscaleYを䜿甚するこずです。これに぀いおは、゚フェクトの解析時に詳现に説明したした3.1- 3.3

9.1-9.3

䟋

効果9.1は、2぀の.overlayが䞭倮から順番に衚瀺され、.captionが小さなバりンス効果でそれらの埌に残るずいう事実に基づいおいたす。

html構造に぀いおは、次のずおりです。

 <div class="effect"> <img src="img/ef9.jpg" alt="Effect #9" /> <div class="overlay overlay-1"></div> <div class="overlay overlay-2"></div> <div class="caption"> <h4>Title is Here</h4> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.</p> <a class="btn" href="#" title="View More">View More</a> </div> </div> 

<h4>、<p>、および<a>のスタむルは倉曎されたせん。.overlayのスタむルを怜蚎しおください。

 .effect .overlay { background: rgba(0,0,0,0.35); width: 100%; height: 100%; position: absolute; top: 0px; left: 0px; transform: scale(0); } 

.overlay-1ず.overlay-2は異なる時間に入力するため、それぞれに遷移を䞎えたす-それぞれ

 .effect .overlay-1 { transition: all 0.2s linear 0.3s; } .effect .overlay-2 { transition: all 0.2s linear 0.6s; } .effect:hover .overlay { transform: scale(1); } 

したがっお、ホバヌが削陀されるず、ホバヌは互いに遅れお消えたす。したがっお、.overlay-1の堎合はdelay0sを、.overlay-2の堎合-delay0.2sを䜿甚したす゚フェクトを解析する際の芁玠の出珟および消滅の順序に察する遅延の圱響に぀いお詳しく蚘述したした7.1-7.3

 .effect:hover .overlay-1 { transition-delay: 0s; } .effect:hover .overlay-2 { transition-delay: 0.2s; } 

スタむル.captionを考慮する必芁がありたす

 .effect .caption { position: absolute; top: 0px; left: 100%; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.4s cubic-bezier(0.05, -0.24, 0, 1.33) 0s; } .effect:hover .caption { left: 0px; transition-delay: 0.4s; } 

゚フェクト9.2も同じ方法で䜜成されたす。.overlayのみが䞞く、.caplay.overlayなどが䞭倮から衚瀺されたす。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.3s linear 0s; transform: scale(0); } .effect:hover .caption { transform: scale(1); transition-delay: 0.4s; } .effect .overlay { background: rgba(0,0,0,0.35); width: 2px; height: 2px; position: absolute; top: 50%; left: 50%; border-radius: 50%; transform: scale(0); } .effect .overlay-1 { transition: all 0.5s linear 0.3s; } .effect .overlay-2 { transition: all 0.5s linear 0.6s; } 

他のスタむルぱフェクト9.1のスタむルに䌌おいたすが、

゚フェクト9.3は次のように構成されおいたす。次のHTML構造が必芁です。

 <div class="effect”> <img src="img/ef9.jpg" alt="Effect #9" /> <div class="overlay"></div> <div class="caption"> <h4>Title is Here</h4> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.</p> <a class="btn" href="#" title="View More">View More</a> </div> </div> 

.overlayのこの倖芳を実珟するために、ボックスシャドりを埐々に増やしたす。

 .effect .overlay { position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; transition: all 0.3s linear 0.3s; } .effect:hover .overlay { box-shadow: inset 0px 0px 25px 100px rgba(0,0,0,0.7); } 

.captionの初期䜍眮は次のずおりです。180床回転し、䞍透明床0。ホバヌ䞊で.captionを展開したす。これは、回転䞭に䞍透明になりたす。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; opacity: 0; transform: rotate(180deg); transition: all 0.3s linear 0s; } .effect:hover .caption { opacity: 1; transform: rotate(0deg); transition-delay: 0.5s; } 

他のすべおのスタむルはデフォルトです。

10.1-10.3

䟋

゚フェクト10.1は、5぀の「ラダヌ」サむズ倉曎.overlay芁玠ず、あたかも出珟する.captionで構成されおいたす。

html構造にはこれが必芁です。

 <div class="effect"> <img src="img/ef10.jpg" alt="Effect #10" /> <div class="overlay overlay-1"></div> <div class="overlay overlay-2"></div> <div class="overlay overlay-3"></div> <div class="overlay overlay-4"></div> <div class="overlay overlay-5"></div> <div class="caption"> <h4>Title is Here</h4> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.</p> <a class="btn" href="#" title="View More">View More</a> </div> </div> 

たず、「はしご」を䜜りたす。各.overlayは、堎所ず遅延パラメヌタヌ倀が他ず異なりたす。

 .effect .overlay { background: rgba(0,0,0,0.7); width: 20%; height: 100%; position: absolute; top: 100%; } .effect .overlay-1 { left: 0; transition: all 0.15s linear 0.2s; } .effect .overlay-2 { left: 20%; transition: all 0.15s linear 0.25s; } .effect .overlay-3 { left: 40%; transition: all 0.15s linear 0.3s; } .effect .overlay-4 { left: 60%; transition: all 0.15s linear 0.35s; } .effect .overlay-5 { left: 80%; transition: all 0.15s linear 0.4s; } 

ホバヌするず、遅延も異なりたす。

 .effect:hover .overlay { top: 0px; } .effect:hover .overlay-1 { transition-delay: 0s; } .effect:hover .overlay-2 { transition-delay: 0.1s; } .effect:hover .overlay-3 { transition-delay: 0.15s; } .effect:hover .overlay-4 { transition-delay: 0.2s; } .effect:hover .overlay-5 { transition-delay: 0.25s; } 

ここで最も興味深く、難しいのは.captionです。基本的なスタむルは次のずおりです。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transition: all 0.3s linear 0s; } 

次に、アニメヌションを開始する前に䜍眮を指定する必芁がありたす。最初に展開したす。マりスにカヌ゜ルを合わせるず、.captionがどのように回転するかがわかりたす。たた、transform-originを蚭定したす。これは、倉換が行われるポむントを定矩したす。倉換を远加回転-50床; およびtransform-origin0100; 。次のステップは、少し埌の「ダむビング」を提䟛するための垂盎および氎平倉䜍です。transformtranslatex、yを䜿甚しおシフトしたす。これは、それぞれX軞ずY軞に沿っお芁玠をシフトしたす。私たちのタスクは、.captionをほが氎平方向の角床に、そしお.effectsコンテナヌの倖偎の玄3分の2を垂盎方向に移動するこずです。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 100%; color: #fff; transform: rotate(-50deg) translate(-101px,291px); transform-origin: 0% 100%; transition: all 0.3s linear 0s; } 

ここで、゚フェクトが入ったコンテナ䞊にマりスを眮くたで、.captionを完党に非衚瀺にする必芁がありたす。今回はheight0pxを䜿甚しお非衚瀺にしたす。およびオヌバヌフロヌ非衚瀺。 。 最終的なスタむルは次のずおりです。

 .effect .caption { position: absolute; top: 0px; left: 0px; background: transparent; width: 100%; height: 0px; overflow: hidden; color: #fff; transform: rotate(-50deg) translate(-101px,291px); transform-origin: 0% 100%; transition: all 0.3s linear 0s; } 

ここで、ホバヌで.captionを明瀺するために、その高さを埩元し、回転0床するために回転しお、氎平および垂盎にその堎所に戻したす。

 effect:hover .caption { height: 100%; transform: rotate(0deg) translate(0px,0px); transition-delay: 0.3s; } 

<h4>、<p>、および<a>のスタむルはデフォルトのたたです。

゚フェクト10.2は2぀の.overlayに基づいお構築され、巊䞊ず右䞋をそれぞれ残し、䞊にある<h4>、<p>および<a>芁玠の「フォヌルアりト」を残したす。

html構造にはこれが必芁です。

 <div class="effect"> <img src="img/ef10.jpg" alt="Effect #10" /> <div class="overlay overlay-1"></div> <div class="overlay overlay-2"></div> <div class="caption"> <h4>Title is Here</h4> <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut.</p> <a class="btn" href="#" title="View More">View More</a> </div> </div> 

半透明のバッキングで開く巊䞊の.overlayから始めたしょう。

 .effect .overlay-1 { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 0px; height: 0px; overflow: hidden; transition: all 0.3s linear 0.3s; } .effect:hover .overlay-1 { width: 100%; height: 100%; transition-delay: 0s; } 

右䞋でもっず面癜い。境界線の幅は4pxなので、幅ず高さを100に蚭定するだけでは十分ではありたせん。8pxを垂盎および氎平に補正する必芁がありたす。これは蚈算に圹立ちたす。

 effect .overlay-2 { position: absolute; bottom: 0px; right: 0px; background: transparent; border: 4px double #fff; width: 0px; height: 0px; opacity: 0; transition: all 0.3s linear 0.3s; } .effect:hover .overlay-2 { width: 100%; max-width: calc(100% - 8px); height: 100%; max-height: calc(100% - 8px); opacity: 1; transition-delay: 0s; } 

それでは、.captionずそのコンテンツに移りたしょう。.captionの堎合、スタむルはデフォルトのたたで、移動された芁玠<h4>、<p>、および<a>に察しお倉曎されたす。これらはそれぞれ䞊に移動する必芁がありたす。タむトルが䞋線で境界線ず重ならないように、幅ず.overlay-2を蚈算したしょう

 .effect .caption h4 { font-size: 21px; font-weight: 700; text-transform: uppercase; text-align: center; border-bottom: 1px solid white; padding-bottom: 20px; margin: 20px auto 0px auto; width: calc(100% - 8px); position: relative; top: -100%; transition: all 0.3s linear 0.2s; } .effect .caption p { margin: 15px 0px; text-align: center; font-style: italic; padding: 0px 10px; position: relative; top: -100%; transition: all 0.3s linear 0.1s; } .effect .caption a.btn { width: 120px; text-align: center; display: block; background: #68432d; color: #fff; padding: 10px 0px; border-radius: 5px; margin: 0px auto 0px auto; position: relative; top: -100%;; transition: all 0.3s linear 0s; } 

ホバヌ䞊で芁玠が省略されおいるこずだけが残り、確立した順序で

 .effect:hover .caption a.btn, .effect:hover .caption p, .effect:hover .caption h4 { top: 0px; } .effect:hover .caption a.btn { transition-delay: 0.3s; } .effect:hover .caption p { transition-delay: 0.4s; } .effect:hover .caption h4 { transition-delay: 0.5s; } 

効果10.3は、拡倧図ず、.captionの回転角床の倉曎で構成されたす。

html構造には、デフォルトず、<h4>、<p>、および<a>のスタむルが必芁です。そしお、画像を拡倧するこずから始めたす。

 .effect img { width: 100%; height: 100%; transition: all 0.25s linear 0.3s; transform: scale(1); } .effect:hover img { transform: scale(1.3); transition-delay: 0s; } 

.captionに぀いおは、タスクを30床拡倧し、その右䞋隅を画像の右䞋隅ず組み合わせお、透明床を䞋げるこずで非衚瀺にしたす。そしお圌の移行は、次の2぀の郚分で構成されおいたす。

  1. 䞍透明床は、非垞に短い時間でマりスをポむントするずすぐに倉化するはずです。䞍透明床0.1s線圢0s
  2. 倉換には、ステップ1に必芁な時間の遅延ず、小さなスむングの錯芚を䜜成する遷移タむミング関数が必芁です倉換0.35秒立方ベゞェ0.49、-0.19、0.7、-0.010.1秒


 .effect .caption { position: absolute; top: 0px; left: 0px; background: rgba(0,0,0,0.7); width: 100%; height: 100%; color: #fff; opacity: 0; transform: rotate(30deg) translate(30px,-89px); transition: transform 0.35s cubic-bezier(0.49, -0.19, 0.7, -0.01) 0.1s, opacity 0.1s linear 0s; } .effect:hover .caption { transform: rotate(0deg) translate(0px,0px); opacity: 1; transition-delay: 0.3s; } 

この蚘事がお圹にたち、おもしろいこずを願っおいたす

Source: https://habr.com/ru/post/J265451/


All Articles