ãã®ããã¥ã¢ã«ãäœæãããšãã®ç®æšã¯ã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; }
ä»çµã¿ã確èªããŸããããæé ã®çµæïŒ- .effectã«ã«ãŒãœã«ãåããã
- ãã©ã€ãã¢ãŠãããªãŒããŒã¬ã€
- ãã£ãã·ã§ã³ã衚瀺ãããŸã
- ãããŒãåé€
- ãªãŒããŒã¬ã€ããã®å Žæã«æ»ã
- .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ã€ã®éšåã§æ§æãããŠããŸãã- äžéæåºŠã¯ãéåžžã«çãæéã§ããŠã¹ããã€ã³ããããšããã«å€åããã¯ãã§ããäžéæåºŠ0.1sç·åœ¢0s
- 倿ã«ã¯ãã¹ããã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; }
ãã®èšäºãã圹ã«ãã¡ããããããããšãé¡ã£ãŠããŸãïŒ