tip) 가고 싶은 회사의 자격조건/우대요건 보고, 단어 따라서 써라!
ex) EC솔루션 프론트엔드 우대요건
37일차 작업 처음부터 다시 해보기


<ul class="d-flex p_tabNm fs-3">
<li><a href="#none">React</a></li>
<li class="active"><a href="#none">Web</a></li> <!-- .active -->
<li><a href="#none">EC</a></li>
</ul>

<script>
$(function(){
var startNum = $('.p_tabNm .active').index();
// .active를 갖는 li의 index를 변수에 저장
})
</script>

portfolioDB [ startNum(=.active 가진 li 번호) ]
<script>
// Web 클릭 시, Web에 관한 DB 내용을 HTML h2태그에 집어넣기
$('#portfolio .description h2').html(portfolioDB[startNum].descriptionH2)
</script>

'리액트 소개 페이지'가 삽입됨



<script>
// 대표이미지
$('.titleImg img').attr('src', portfolioDB[startNum].titleImg)
// 썸네일
// HTML에 이미 존재하는 .thumbImg <img> 영역을 호출해 item 값으로 지정
$('.thumbImg img').each((index, item)=>{
$(item).attr('src', portfolioDB[startNum].thumbImg[index])
// └>'.thumbImg img' 속성에 접근, 'src'를 DB배열[index]번으로 교체
})
</script>

HTML
<ul class="d-flex p_linkinfo justify-content-evenly">
<!-- li와 a태그 없는 상태! DB에서 삽입함 -->
</ul>
JQ
① 제이쿼리에 귀속된 .each 호출 (=자바스크립트는 forEach)
→ 인자로 배열과 화살표 함수를 받음
$.each( ['사이트주소', '피그마주소'] ), ( index,item )=>{
<!-- 인자로 배열 받음 -->
})

② 빈배열 linkInfo 생성
<script>
var linkInfo = ''; // 빈 배열 생성 (each 돌린 것 한꺼번에 담아 html에 던질것)
$.each( portfolioDB[startNum].pLinkinfo, (index, item)=>{
linkInfo += ``
})
$('#portfolio .p_linkinfo').html(linkInfo); // html에 던짐
</script>

③ .each에 넣고 돌린 DB을 < li >,< a >에 담아 linkInfo에 저장!

결과물

<li><a href="${item[index]}"></a></li>;
<script>
var linkInfo = '';
$.each( portfolioDB[startNum].pLinkinfo, (index, item)=>{
linkInfo += `<li><a href="${item[index]}"></a></li>`;
})
$('#portfolio .p_linkinfo').html(linkInfo);
</script>

<li><a href="${item}"></a></li>;
<script>
var linkInfo = '';
$.each( portfolioDB[startNum].pLinkinfo, (index, item)=>{
linkInfo += `<li><a href="${item}"></a></li>`;
})
$('#portfolio .p_linkinfo').html(linkInfo);
</script>


ul{ 마진=0; 패딩=0;}
.container에 border 줘서 체크하기 쉽게

text-decoration-none

d-flex justify-content-center

패딩값

justify-content-center + justify-content-md-end
모바일에서 네비 가운데 정렬 + 768px 이상부터 오른쪽 정렬
pe-md-0
(768px이상부터) 왼쪽 정렬일 때, 패딩-우측-0 / 오른쪽 정렬일 때, 패딩-좌측-0 (end)
col-md-6
p-md-0

d-md-flex
mt-md-5

반응형 처리하여, 데스크탑과 모바일에서 각각 아래처럼 보임





portLoad( loadnum ); 자동 실행!

<a href="#none">REACT</a>
<a href="#none">Web</a>
<a href="#none">EC</a>
<script>
// 클릭 이벤트 발생한 li에 아래 명령 실행
$('.p_tabNm li').click(function(){
portLoad( $(this).index() ); // portLoad 인자로 (클릭 이벤트 발생한 li의 번호) 삽입!
})
function portLoad(startNum){ // 클릭 이벤트 발생한 li의 번호가 매개인자로 전달
// startNum을 인자로 갖는 식들에 줄줄이 들어가 실행
}
</script>


<script>
// 클릭 이벤트 발생한 li에 아래 명령 실행
$('.p_tabNm li').click(function(){
$(this).addClass('active').siblings().removeClass('active');
// 클릭 이벤트 발생한 li에 '.active' 추가 + 그외 li들 '.actve' 제거
portLoad( $(this).index() );
})
</script>

대충 알아보기만 하도록 옮겨적은 거임. 이거 복붙하면 안됨
<script>
// 수능광고전단지 DB --------------
pLinkinfo : [
{
infoIcon : 'fa-solid fa-medal',
infoLink: 'https://www.naver.com/',
},
{
infoIcon : 'fa-solid fa-shield-cat',
infoLink: 'https://github.com/',
},
{
infoIcon : 'fa-solid fa-f',
infoLink : 'https://www.figma.com/',
},
]
// 리액트 소개페이지 --------------
pLinkinfo : [
{
infoIcon : 'fa-solid fa-shield-cat',
infoLink: 'https://github.com/',
},
{
infoIcon : 'fa-solid fa-f',
infoLink : 'https://www.figma.com/',
},
{
infoIcon : 'fa-solid fa-g',
infoLink : 'https://www.google.co.kr/',
},
{
infoIcon : 'fa-solid fa-g',
infoLink: 'https://www.google.co.kr/',
},
{
infoIcon : 'fa-solid fa-n',
infoLink: 'https://www.notion.so/ko-kr/product',
},
]
// EC솔루션 프론트엔드 개발 --------------
pLinkinfo : [
{
infoIcon : 'fa-solid fa-medal',
infoLink: 'https://www.naver.com/',
},
{
infoIcon : 'fa-solid fa-f',
infoLink: 'https://www.figma.com/',
},
]
</script>
JQ
<script>
var linkInfo = '';
$.each( portfolioDB[startNum].pLinkinfo, (index, item)=>{
linkInfo += `<li><a href="${item.infoLink }"><i class="${ item.infoIcon }"></i></a></li>`;
})
$('#portfolio .p_linkinfo').html(linkInfo);
</script>
결과물

HTML
<ul class="d-md-flex thumbImg d-none">
<!-- 썸네일 이미지 (<li><img></li> 삭제) -->
</ul>
JQ
<script>
function portLoad(startNum){
// 대표 이미지
$('.titleImg img').attr('src', portfolioDB[startNum].titleImg);
// 썸네일
let thumb = '';
$.each(portfolioDB[startNum].thumbImg, (index, item)=>{
thumb += `<li><img class="img-fluid" src="${portfolioDB[startNum].thumbImg[index]}"></li>`;
})
$('.thumbImg').html(thumb);
// 이하생략
})
</script>