ã¬ã¹ãã³ã·ããã¶ã€ã³ã«å¯Ÿå¿ããã°ããŒãã«ããã²ãŒã·ã§ã³
ã¬ã¹ãã³ã·ããã¶ã€ã³ã«å¯Ÿå¿ããã°ããŒãã«ããã²ãŒã·ã§ã³ãšã¯ãç»é¢ãµã€ãºãããã€ã¹ã®çš®é¡ã«å¿ããŠæè»ã«åœ¢ãå€ããããã²ãŒã·ã§ã³ã¡ãã¥ãŒã®ããšã§ãã
倧ããªãã£ã¹ãã¬ã€ã§ã¯æšªäžŠã³ã®ã¡ãã¥ãŒãšããŠè¡šç€ºããããŠãŒã¶ãŒãäžç®ã§å
šäœæ§é ãææ¡ã§ããããã«èšèšãããŸãã
äžæ¹ã§ã¹ããŒããã©ã³ãã¿ãã¬ããã®ãããªå°ããªç»é¢ã§ã¯ããã³ããŒã¬ãŒã¡ãã¥ãŒãããã¯ãŒåœ¢åŒã«åãæ¿ãããéãããã¹ããŒã¹ã§ãæäœã§ãããã工倫ããŸãããã
ããããä»çµã¿ã«ãã£ãŠãåããµã€ããã©ã®ç°å¢ããé²èЧããŠãäžè²«ããæäœæ§ãä¿ããããŠãŒã¶ãŒã¯è¿·ãããšãªãç®çã®ããŒãžãžã¢ã¯ã»ã¹ã§ããŸãã
ã¬ã¹ãã³ã·ã察å¿ã®ã°ããŒãã«ããã²ãŒã·ã§ã³ã¯ãçŸä»£ã®Webã«ãããŠå¿
é ã®èŠçŽ ãšãããã§ãããã
âŠãšããããŸã§ã¯æç§æžçãªäžè¬è«ãªãã§ããã©ã
åœãµã€ãã®å Žåãã°ããŒãã«ããã²ãŒã·ã§ã³ã¯ãã®ãŸãŸã¹ããã§ãå°ããã«è¡šç€ºãããããã«ããŠããããã³ããŒã¬ãŒã¡ãã¥ãŒãããã¯ãŒåœ¢åŒã®ã¡ãã¥ãŒã¯å¥éçšæããŠãããŸãã
1ã€ã®ãµã€ãã«è€æ°ã®ã«ããŽãªãŒãããã®ã§ãåžžã«ã¡ã€ã³ã®ãµã€ãããããç®ã«ã€ãããã«ããŠããã®ã§ãã
ã°ããŒãã«ããã²ãŒã·ã§ã³ãäœãããã®html
æ®éã®HTMLã§ããããç¹ã«é£ããããšã¯ãªãã§ãã
<nav class="den_nav">
<ul>
<li><a href="https://feinatelier.org/"><img src="/pcimg/fein_fish_green.webp" alt="ãã®ãµã€ãã®ã·ã³ãã«ããŒã¯" class="feinhome"></a></li>
<li><a href="/" class="animated-link">ããŒã </a></li>
<li><a href="/another-eden/anaden_sitemap.html" class="animated-link">ã¢ãã¶ãŒãšãã³</a></li>
<li><a href="/fish/fish_sitemap.html" class="animated-link">ã¢ãŠããã¢ã®ãšãªã¢</a></li>
<li><a href="/contents/site_create.html" class="animated-link">å人ãµã€ãå¶äœ</a></li>
<li><a href="/contents/protect.html" class="animated-link">AIåŠç¿ãé²ã工倫</a></li>
<li><a href="/contents/rss.html" class="animated-link">æŽæ°ã®ãç¥ãã</a></li>
</ul>
</nav>
å¯äžèšããããšããããšããã°ããããŸãã°ããŒãã«ããã²ãŒã·ã§ã³ã«å€ãã®é
ç®ãä»ããªãããã«ããŠããŸããã
åœãµã€ãã§ããã°ãã«ããŽãªãŒåãããããµã€ããããïŒÎ±çšåºŠã
ãã®ä»ã¯ãã¹ãŠä»ã®ã¡ãã¥ãŒã«å§ããŠããŸãã
ã°ããŒãã«ããã²ãŒã·ã§ã³ãäœãããã®CSS
ãã®CSSã¯ãã°ããŒãã«ããã²ãŒã·ã§ã³ïŒäžéšã¡ãã¥ãŒïŒãã®èŠãç®ãšåããäœãããã®ãã®ã§ãã
äž»ã«ãªã³ã¯ã®äžç·ã¢ãã¡ãŒã·ã§ã³ãåéæã®ããèæ¯ãããŽã®ãããŒå¹æããªã¹ãã®æšªäžŠã³ãå®çŸããŠããŸãã
åºæ¬ã®åœ¹å²ãšããŠã¯ã次ã®ãããªæãã§ãããããã
- .animated-linkïŒ
ãªã³ã¯ã®åºæ¬ã¹ã¿ã€ã«ã position: relativeã§ç䌌èŠçŽ ãäœçœ®æ±ºãã§ããããã«ããŠããŸãã - .animated-link::afterïŒ
ãªã³ã¯ã®äžã«äŒžã³ãã¢ã³ããŒã©ã€ã³ãç䌌èŠçŽ ã§äœæã - content:
""ã§HTMLãå¢ãããè£
食ã远å ããŠããŸãã
ç䌌èŠçŽ ã¯èŠçŽ ã®ååŸã«ä»®æ³çãªèŠçŽ ãæ¿å ¥ã§ããä»çµã¿ã§ãã
åã«ãŒã«ã«ã€ããŠãã¡ãã£ãšèª¬æããŠã¿ãŸãããã
- ãªã³ã¯ã®èŠãç®ãšã¢ãã¡ãŒã·ã§ã³
- .animated-link ã¯æåè²ã倪ããè²å€åã®ãã©ã³ãžã·ã§ã³ãèšå®ãtransition: color 0.3sã§è²ãæ»ããã«å€ãããŸãã
- .animated-link::after ã¯çµ¶å¯Ÿé 眮ã§èŠçŽ ã®äžã«é«ã2pxã®ç·ãäœããåæå¹ ã0%ã«ããŠãããŸãããããŒæã«å¹ ã100%ã«ããããšã§å·Šããå³ãžäŒžã³ãäžç·ã¢ãã¡ã«ãªããŸãã
- ããå šäœã®èæ¯ãšè¡šç€ºã¢ãã¡
- .den_nav ã¯åéæã®ã°ã©ããŒã·ã§ã³èæ¯ãšããã¯ãããããã©ãŒïŒbackdrop-filterïŒã§èæ¯ããŒãããè§äžžãšããã£ã³ã°ã§èŠãç®ãæŽããŠããŸãã
- åæç¶æ ã¯opacity: 0ãštranslateY(-20px)ã§é ããŠããã.visibleãä»ãããšãã§ãŒãã€ã³ããŠäžããã¹ããšåºãåãã«ãªããŸãã
- ããŽãšãªã¹ã
- .feinhome ã¯ããŽç»åã®ãµã€ãºãšãããŒæã®æ¡å€§ã»åœ±ïŒdrop-shadowïŒãèšå®ã
- .den_nav ul ã¯display: flexã§æšªäžŠã³ã«ããflex-wrap: wrapã§çãç»é¢ã§ã¯æãè¿ããŸãããªã¹ãã®äœçœã¯liã§èª¿æŽã
ç䌌èŠçŽ ã§è£
食ã远å ãããšHTMLãæ±ããã«è¡šçŸã§ãããã§ãããã
transitionãštransformã§èªç¶ãªã¢ãã¡ãŒã·ã§ã³ãäœãããã«ããŠãŸãã
ãã ãbackdrop-filterã§èæ¯ããŒããæã«ã¯ãã©ãŠã¶ã®å¯Ÿå¿ç¶æ³ã ã確èªããã»ããè¯ãããã
ããããã³ãŒãã«ç§»ããŸããã
ã°ããŒãã«ããã²ãŒã·ã§ã³ãæ§æããheader.css
/* â
ã°ããŒãã«ããã²ãŒã·ã§ã³ãæ§æãã */
.animated-link {
position: relative;
color: #e3f2fd;
font-weight: 500;
text-decoration: none;
transition: color 0.3s ease;
}
.animated-link:hover {
color: #ffffff;
}
.animated-link::after {
content: "";
position: absolute;
left: 0;
bottom: -3px;
width: 0%;
height: 2px;
background: linear-gradient(to right, #42a5f5, #80d8ff);
transition: width 0.3s ease;
}
.animated-link:hover::after {
width: 100%;
}
.den_nav {
background: linear-gradient(to bottom, rgba(173, 216, 230, 0.5), rgba(173, 216, 230, 0));
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
padding: 12px 20px;
border-radius: 20px;
opacity: 0;
transform: translateY(-20px);
transition: opacity 0.8s ease, transform 0.8s ease;
}
.den_nav.visible {
opacity: 1;
transform: translateY(0);
}
.feinhome {
width: 45px;
transition: transform 0.3s ease, filter 0.3s ease;
}
.feinhome:hover {
transform: scale(1.1);
filter: drop-shadow(0 0 6px rgba(128, 216, 255, 0.6));
}
.den_nav ul {
list-style-type: none;
margin: 0;
padding: 0;
display: flex;
flex-wrap: wrap;
}
.den_nav ul li {
margin-right: 20px;
margin-bottom: 10px;
}
.den_nav ul li a {
color: #1A73E8;
}
.den_nav ul li a:hover {
color: #0078D4;
}
ã°ããŒãã«ããã²ãŒã·ã§ã³ã®ãªã³ã¯è£ 食
.animated-link {
position: relative;
color: #e3f2fd;
font-weight: 500;
text-decoration: none;
transition: color 0.3s ease;
}
- position
- 芪èŠçŽ ãšããŠã®äœçœ®åºæºãäœããŸããåŸã§äœ¿ãã::afterãã®ç·ãããã®èŠçŽ ãåºæºã«é 眮ã§ããŸãã
- color
- æåè²ãèãæ°Žè²ã«ããŸããåªããèŠããåæè²ã§ãã
- font-weight
- æåã®å€ªãããã倪ãã«ããŸããèŠåºããªã³ã¯ãšããŠå°ã匷調ãããŸãã
- text-decoration
- ããã©ã«ãã®äžç·ãæ¶ããŸãã代ããã«æ¬äŒŒèŠçŽ ã§ç·ãäœããŸãã
- transition
- æåè²ãå€ãããšãã®ã¢ãã¡æéãšåãæ¹ãæå®ããŸãã0.3ç§ã§ãªãããã«å€ãããŸãã
.animated-link:hover {
color: #ffffff;
}
- hoveræã®color
- ããŠã¹ãä¹ãããšçœã«å€ãããŸããã³ã³ãã©ã¹ããäžãããã¢ã¯ãã£ãæãåºãŸãã
.animated-link::after {
content: "";
position: absolute;
left: 0;
bottom: -3px;
width: 0%;
height: 2px;
background: linear-gradient(to right, #42a5f5, #80d8ff);
transition: width 0.3s ease;
}
- content
- 空ã®å å®¹ã§æ¬äŒŒèŠçŽ ãäœããŸããç·ã®ç®±ãçšæããã€ã¡ãŒãžã§ãã
- position
- æ¬äŒŒèŠçŽ ããã®ãªã³ã¯ã®äžã§çµ¶å¯Ÿé 眮ããŸãã芪ã®relativeãåºæºã«ãªããŸãã
- left
- å·Šç«¯ã«æããŸããç·ã®éå§äœçœ®ã§ãã
- bottom
- ããã¹ãã®å°ãäžã«é 眮ããŸãã-3pxã§æåã®äžããå°ãé¢ããŸãã
- width
- åæå¹ ã0%ã«ããŸããæåã¯ç·ãèŠããŸããã
- height
- ç·ã®å€ªãã2pxã«ããŸãã现ãã®äžç·ã§ãã
- background
- 峿¹åã«åããã°ã©ããŒã·ã§ã³ã®è²ã§ããéããã©ã€ããã«ãŒãžå€åããŸãã
- transition
- å¹ ãå€ãããšãã®ã¢ãã¡èšå®ã§ãã0.3ç§ã§ã¹ããšäŒžã³ãŸãã
.animated-link:hover::after {
width: 100%;
}
- hoveræã®width
- ããŠã¹ãä¹ãããšç·ãå·Šããå³ãž100%ãŸã§äŒžã³ãŸãããããŒã®æ°æã¡ãããæŒåºããŸãã
ã°ããŒãã«ããæ¬äœã®èŠãç®ãšè¡šç€ºã¢ãã¡
.den_nav {
background: linear-gradient(to bottom, rgba(173, 216, 230, 0.5), rgba(173, 216, 230, 0));
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
padding: 12px 20px;
border-radius: 20px;
opacity: 0;
transform: translateY(-20px);
transition: opacity 0.8s ease, transform 0.8s ease;
}
- background
- äžããäžã«èãæ°Žè²ã®éæã°ã©ããŒã·ã§ã³ãã¬ã©ã¹é¢šã®æãããèæ¯ã«ãªããŸãã
- backdrop-filter
- èæ¯å šäœã12pxãŒãããŸããåéæã®ã¬ã©ã¹å¹æã§ãã
- -webkit-backdrop-filter
- Safariãªã©WebKitçšã®äºææå®ã§ããåããŒãããå¹ãããŸãã
- padding
- å åŽã®äœçœãäžäž12pxãå·Šå³20pxã«ããŸããäžèº«ãè©°ãŸãéããªãããã«ããŸãã
- border-radius
- è§ã20pxäžžããŸããããããå°è±¡ã®ã«ãŒã圢ç¶ã§ãã
- opacity
- åæã¯éæã«ããŸããåŸã§ã¯ã©ã¹åãæ¿ãã§ãã§ãŒãã€ã³ããŸãã
- transform
- åæäœçœ®ãäžã«20pxããããŸããåºçŸæã«äžãžã¹ã©ã€ããããŸãã
- transition
- éæåºŠãšäœçœ®ã®å€åã0.8ç§ã§ãªãããã«ããŸãããã§ãŒãïŒã¹ã©ã€ãã®ã¢ãã¡ãçµ±åããŸãã
.den_nav.visible {
opacity: 1;
transform: translateY(0);
}
- visibleæã®opacity
- å®å šã«è¡šç€ºããŸãã0ãã1ãžãã§ãŒãã€ã³ããŸãã
- visibleæã®transform
- 瞊äœçœ®ãå ã«æ»ããŸããäžãããµãã£ãšéããŠããæãã«ãªããŸãã
ããŒã ã¢ã€ã³ã³ïŒãéããŒã¯ïŒã®ãããŒæŒåº
.feinhome {
width: 45px;
transition: transform 0.3s ease, filter 0.3s ease;
}
- width
- ç»åãã¢ã€ã³ã³ã®å¹ ã45pxã«åºå®ããŸããããã«åãŸãããããµã€ãºã§ãã
- transition
- æ¡å€§ãšåœ±ã®å€åã0.3ç§ã§åæãããŸããåå¿ãèªç¶ã«ãªããŸãã
.feinhome:hover {
transform: scale(1.1);
filter: drop-shadow(0 0 6px rgba(128, 216, 255, 0.6));
}
- transform
- ããŠã¹ä¹ãã§1.1åã«æ¡å€§ããŸããã¯ãªãã¯ããããªãèŠèŠçèªå°ã§ãã
- filter
- æããæ°Žè²ã®çºå 颚ããããã·ã£ããŠãä»ããŸããååšæã軜ã匷調ããŸãã
ããå ã®ãªã¹ãã¬ã€ã¢ãŠã
.den_nav ul {
list-style-type: none;
margin: 0;
padding: 0;
display: flex;
flex-wrap: wrap;
}
- list-style-type
- ããã©ã«ãã®é»ç¹ãªã©ã®ç®æ¡æžãèšå·ãæ¶ããŸããããã«äžèŠãªè£ 食ãå€ããŸãã
- margin
- å€åŽäœçœããŒãã«ããŸãã芪ãšã®ç©ºã調æŽãCSSã§çµ±äžããŸãã
- padding
- å åŽäœçœããŒãã«ããŸããè¡é ã®ããããªãããŸãã
- display
- ãã¬ãã¯ã¹ããã¯ã¹ã§æšªäžŠã³ã®ã¬ã€ã¢ãŠãã«ããŸããããé ç®ã䞊ã¹ãããããŸãã
- flex-wrap
- æšªå¹ ãçããšãã¯æãè¿ããŸããã¹ããã§ã®ã¬ã€ã¢ãŠã厩ããé²ããŸãã
.den_nav ul li {
margin-right: 20px;
margin-bottom: 10px;
}
- margin-right
- é ç®åå£«ã®æšªã®ééã20px空ããŸããè©°ãŸããé²ããŸãã
- margin-bottom
- æãè¿ãããšãã®çžŠã®ééã10px確ä¿ããŸããè€æ°æ®µã§ãèªã¿ãããããŸãã
ããã®ãªã³ã¯è²ãšãããŒ
.den_nav ul li a {
color: #1A73E8;
}
- color
- éåžžæã®ãªã³ã¯è²ãé®®ãããªãã«ãŒã«ããŸãããã©ã³ãæãå¯èªæ§ãäž¡ç«ããŸãã
.den_nav ul li a:hover {
color: #0078D4;
}
- hoveræã®color
- å°ãæ·±ããã«ãŒã«åãæ¿ããŸãããããŒã§ç¶æ å€åãæç¢ºã«äŒããŸãã
次ã¯ããã°çšã®CSSãæ²èŒããŸãããããã¯åã«è²ãå€ããã ãã§ãä»ã®æ©èœçãªéšåã¯å šãŠåãã§ããã
ããã°çšã®ã°ããŒãã«ããã²ãŒã·ã§ã³ãæ§æããheader.css
/* â
ããã°çšã®ã°ããŒãã«ããã²ãŒã·ã§ã³ãæ§æãã */
.animated-link_blog {
position: relative;
color: #1A73E8;
font-weight: 500;
text-decoration: none;
transition: color 0.3s ease;
font-size: 0.95em;
}
.animated-link_blog:hover {
color: #0d47a1;
}
.animated-link_blog::after {
content: "";
position: absolute;
left: 0;
bottom: -3px;
width: 0%;
height: 2px;
background: linear-gradient(to right, #42a5f5, #80d8ff);
transition: width 0.3s ease;
}
.animated-link_blog:hover::after {
width: 100%;
}
.den_nav_blog {
background: linear-gradient(to bottom,
rgba(255, 165, 0, 0.15),
rgba(255, 165, 0, 0));
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
border-radius: 20px;
padding: 12px 20px;
opacity: 0;
transform: translateY(-20px);
transition: opacity 0.8s ease, transform 0.8s ease;
}
.den_nav_blog.visible {
opacity: 1;
transform: translateY(0);
}
.feinhome {
width: 45px;
transition: transform 0.3s ease, filter 0.3s ease;
}
.feinhome:hover {
transform: scale(1.1);
filter: drop-shadow(0 0 6px rgba(66, 133, 244, 0.5));
}
.den_nav_blog ul {
list-style-type: none;
margin: 0;
padding: 0;
display: flex;
flex-wrap: wrap;
}
.den_nav_blog ul li {
margin-right: 20px;
margin-bottom: 10px;
}
.den_nav_blog ul li a {
color: #1A73E8;
}
.den_nav_blog ul li a:hover {
color: #0d47a1;
}
次ã¯JavaScriptã®è§£èª¬ã§ãããã°ããŒãã«ããã²ãŒã·ã§ã³ã®ãã®ã¯å€§ããããšãã£ãŠãªãããããããªã«é·ãã¯ãªããªãã§ãã
ã°ããŒãã«ããã²ãŒã·ã§ã³ãäœãããã®JavaScript
ãã®ã¹ã¯ãªãããäœãããŠããããšãããšããŸãã¯ãããç»é¢ã«èŠããã visible ã¯ã©ã¹ãä»ããèŠããªããªã£ããå€ããŠããŸãã
IntersectionObserver ããç»é¢ãšã®äº€å·®ããã€ãã³ãã®ããã«æããŠãããããã«ãªã£ãŠãã
ãã§ãŒãã€ã³ã»ã¹ã©ã€ãã€ã³ãªã©ã®CSSæŒåºããèŠããã¿ã€ãã³ã°ã§çºç«ãããŠããããã§ããã
ãã£ããã¹ã¯ãªãããèŠãŠãããŸãããã
// ã°ããŒãã«ããã²ãŒã·ã§ã³ã®åã
document.addEventListener("DOMContentLoaded", () => {
const nav = document.querySelector(".den_nav");
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (entry.isIntersecting) {
nav.classList.add("visible");
} else {
nav.classList.remove("visible");
}
});
});
observer.observe(nav);
});
DOM ã®æºåãã§ãããå®è¡
- ã€ãã³ãç»é²
- document.addEventListener("DOMContentLoaded", () => {
- ããŒãžã®HTMLãèªã¿èŸŒãŸããŠãèŠçŽ ã䜿ããç¶æ ã«ãªã£ãã¿ã€ãã³ã°ã§ãäžã®åŠçãå®è¡ããŸããç»åãªã©ã®èªã¿èŸŒã¿å®äºã¯åŸ ãããHTMLã ãæºåããããåããŸãã
ã¿ãŒã²ããèŠçŽ ãååŸ
- èŠçŽ ååŸ
- const nav = document.querySelector(".den_nav");
- ã¯ã©ã¹å den_nav ã®èŠçŽ ïŒã°ããŒãã«ããïŒãããŒãžãã1ã€æ¢ããŠååŸããŸããèŠã€ãã£ãèŠçŽ ã nav ãšãã倿°ã«å ¥ããŸãã
亀差ç£èŠïŒIntersectionObserverïŒãäœæ
- ãªãã¶ãŒããŒäœæ
- const observer = new IntersectionObserver(entries => {
- ç»é¢ïŒãã¥ãŒããŒãïŒãšå¯Ÿè±¡èŠçŽ ãã亀差ããŠãããããç£èŠããä»çµã¿ãäœããŸããäº€å·®ç¶æ³ãå€ãããã³ã«ãåŸãã®é¢æ°ãåŒã°ããŸãã
- ã³ãŒã«ããã¯åŒæ°
- entries => {
- ç£èŠçµæã®é å entries ãæž¡ãããŸããé åã®äžã«ã¯ãç£èŠäžã®åèŠçŽ ã®ç¶æ ïŒèŠããŠããããªã©ïŒãå ¥ã£ãŠããŸãã
ç£èŠçµæã1ã€ãã€åŠç
- ã«ãŒã
- entries.forEach(entry => {
- ç£èŠå¯Ÿè±¡ïŒããã§ã¯ navïŒããšã®ç¶æ ã1ä»¶ãã€åãåºããŠåŠçããŸãã
- å¯èŠå€å®
- if (entry.isIntersecting) {
- 察象èŠçŽ ãç»é¢å ã«å ¥ã£ãŠããïŒäº€å·®ããŠããïŒèŠããŠããïŒããå€å®ããŸããèŠããŠããã° true ã§ãã
- 衚瀺çšã¯ã©ã¹ä»äž
- nav.classList.add("visible");
- ç»é¢ã«èŠããŠãããšããããèŠçŽ ã« visible ãšããã¯ã©ã¹ãä»ããŸããCSSåŽã§ãã®ã¯ã©ã¹ã«ã¢ãã¡ãŒã·ã§ã³ãäžéæåºŠå€æŽãªã©ãèšå®ããŠãããšãèŠãããšãã®åãããå®çŸã§ããŸãã
- ã¯ã©ã¹é€å»
- } else { nav.classList.remove("visible"); }
- ç»é¢ããå€ããïŒèŠããŠããªãïŒãšãã¯ãvisible ã¯ã©ã¹ãå€ããŸããããã§ãé ããŠãããšãã®ç¶æ ãã«æ»ããŸãã
- ã³ãŒã«ããã¯çµäº
- });
- 1ä»¶ã®ç£èŠçµæåŠçãçµããŸãã
- ãªãã¶ãŒããŒäœæçµäº
- });
- IntersectionObserver ã®èšå®ãçµããŸãã
ç£èŠãéå§
- ç£èŠéå§
- observer.observe(nav);
- å ã»ã©ååŸããããèŠçŽ nav ãç£èŠå¯Ÿè±¡ãšããŠç»é²ããŸããããã§ããããç»é¢ã«å ¥ãïŒåºããã³ã«äžã®å€å®ãšã¯ã©ã¹ä»ããåããŸãã
DOMContentLoaded ã®é¢æ°çµäº
- çµäºæ¬åŒ§
- });
- ãDOMãèªã¿èŸŒãŸãããå®è¡ããã颿°ã®çµããã§ãããããŸã§ã®åŠçããããŒãžèªã¿èŸŒã¿çŽåŸã«ã»ãããããŸãã
ä»ã«äœãããããªãŒâŠ
äžå¿è£è¶³ãšããŠã話ããããªããæ¬¡ã®ãããªãã€ã³ããããããã
- CSSãéµ
- visible ã¯ã©ã¹ã«å¯ŸããŠãäŸãšã㊠opacity: 1; transform: translateY(0); transition: .3s; ãªã©ã®ã¹ã¿ã€ã«ãçšæãããšãèŠããç¬éã«ãµãã£ãšè¡šç€ºã§ããŸããåæç¶æ ïŒden_navïŒåŽã§ã¯ opacity: 0; transform: translateY(-8px); ã®ããã«ããŠãããšãåãæ¿ããããããããã§ãã
- å®å šå¯Ÿç
- .den_nav ãååšããªãå Žå㯠observer.observe(nav); ã§ãšã©ãŒã«ãªããŸããåå¿è åãã«ã¯ãif (!nav) return; ãèŠçŽ ååŸçŽåŸã«å ¥ãããšå®å¿ã§ãã
- 现ããèšå®
- IntersectionObserver ã¯ãããå€ãã«ãŒãäœçœãèšå®ã§ããŸãïŒäŸ: new IntersectionObserver(cb, { threshold: 0.5 }) ã§ååèŠãããçºç«ïŒãåãã®ã¿ã€ãã³ã°ã調æŽããããšãã«äŸ¿å©ã§ãã
次ã¯ããã°çšã®JavaScriptã§ãããããã¯den_nav_blogã®éšåãéãã ãã§ãã«ã©ãŒã®ç°ãªãCSSã«åãããŠããã ãã§ãã
// ããã°çšã°ããŒãã«ããã²ãŒã·ã§ã³ã®åã
document.addEventListener("DOMContentLoaded", () => {
const nav = document.querySelector(".den_nav_blog");
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (entry.isIntersecting) {
nav.classList.add("visible");
} else {
nav.classList.remove("visible");
}
});
});
observer.observe(nav);
});
ãã®ããã«ããŠãåœãµã€ãã®ã°ããŒãã«ããã²ãŒã·ã§ã³ã¯CSSãšJavaScriptã飿ºããŠåããŠããããã§ãã
äžå£ã«ã°ããŒãã«ããã²ãŒã·ã§ã³ãšãã£ãŠãããããªãã¶ã€ã³ãã¿ãŒã³ãåãããããšæãããã以åã«äœ¿ã£ãŠããã³ãŒããæ®ããŠãããŸããã
ä»ã®äººã¯ããããããŒãžãèŠãŠããããã§ã