21.08.24
🌱 Repositories
💻 PROJECT
Twitch website colone coding
1. Video section
<span>
ラベルを使用して特定の部分にフォント色を適用.video-section .video-wrap .image-wrap {
position: relative;
width: 333px;
height: 186px;
background-color: #9147ff;
}
.video-section .video-wrap .image-wrap img {
width: 100%;
height: 100%;
transition: transform 0.15s linear;
}
.video-section .video-wrap .image-wrap:hover img {
transform: translate(10px, -10px);
}
2. Category section
3. footer
Responsive personal portfolio website
1. Services
dispaly: grid;
は.service__content
が配置されている..serveices__button
マウスを離すと、x軸方向に移動するアイコンのアニメーションが追加されます..services__modal
ウィンドウをコンテンツに表示し、closeボタンをクリックしてウィンドウを再び消去します.const modalViews = document.querySelectorAll('.services__modal');
const modalBtns = document.querySelectorAll('.services__button');
const modalCloses = document.querySelectorAll('.services__modal-close');
let modal = function (modalClick) {
modalViews[modalClick].classList.add('active-modal');
};
modalBtns.forEach((modalBtn, i) => {
modalBtn.addEventListener('click', () => {
modal(i);
});
});
modalCloses.forEach(modalClose => {
modalClose.addEventListener('click', () => {
modalViews.forEach(modalView => {
modalView.classList.remove('active-modal');
});
});
});
まだ理解できない部分があるので少し気分が悪いです上のコードが本当に一番いいか考えてみましょう.🤔 ISSUE
// 수정 전
const tabs = document.querySelectorAll('[data-target]');
const tabContents = document.querySelectorAll('[data-content]');
tabs.forEach(tab => {
tab.addEventListener('click', () => {
const target = document.querySelector(tab.dataset.target);
tabContents.forEach(tabContent => {
tabContent.classList.remove('qualification__active');
});
target.classList.add('qualification__active');
tabs.forEach(tab => {
tab.classList.toggle('qualification__active');
});
});
});
// 수정 후
const qualificationTabs = document.querySelector('.qualification__tabs');
const qualificationContent = document.querySelectorAll('.qualification__content');
qualificationTabs.addEventListener('click', event => {
const filter = event.target.dataset.filter || event.target.parentNode.dataset.filter;
if (filter == null) {
return;
}
const active = document.querySelector('.qualification__button.qualification__active');
active.classList.remove('qualification__active');
const target = event.target.nodeName === 'BUTTON' ? event.target : event.target.parentNode;
target.classList.add('qualification__active');
setTimeout(() => {
qualificationContent.forEach(content => {
if (filter === content.dataset.type) {
content.classList.add('qualification__active');
} else {
content.classList.remove('qualification__active');
}
});
});
});
以前にポートフォリオのクローンコードを作成したJSファイルを参照して、コードを書き直します.ボタンをクリックしたときのターゲットを明確に指定し、イベントのdata-filterとコンテンツのdata-typeが一致したときにのみquilification activeクラスを追加します.すると、再度ボタンをクリックすると、スタイルが正しく適用されないというエラーはなく、操作が正常であることが確認された.💡 REVIEW
Reference
この問題について(21.08.24), 我々は、より多くの情報をここで見つけました https://velog.io/@pyeonne/21.08.24テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol