4차 과제를 시작하고 11일이 지났다. kream 사이트를 클론 코딩 하기로 정하고 그 주에는 먼가 빨리 진행 되는 듯 싶었는데 2주차가 되었을 때는 아무래도 kream을 다 따라 하려다보니 상품 목록 별로 보여주는 페이지가 많았다. 그러다 보니 실제 중요한 기능구현을 빨리 접하지 못하고 탭메뉴 마다 혹은 banner이미지마다 그리고 작은 이미지 마다 클릭 했을때 보여주는 상품 목록 페이지를 만드느라 정작 중요한 API를 활용하여 만드는 기능구현에는 뒷전으로 밀렸던 것이다. 다른 조와 이야기를 나누고 실제로 만들고 있는 서비스를 보았는데 기본적으로 상품목록을 보여주는 페이지를 1개 만들고 다른 것들을 이미 다 만들었었다. 우리도 빨리 회의를 해서 이제 진짜 중요한 기능을 구현 하도록 해야 겠다는 생각이 들었다.
지금 내가 구현한 기능들은 Swiper-banner, small-swiper-banner, banner, header, footerbanner가 있고 여기에서 banner클릭시 보여지는 페이지도 구현 완료 하였다.
banner img들을 처음에는 image폴더에 저장해서 import해와서 사용하는 방식을 쓰지 않았다. isuue에서 일일이 다 링크로 만들어서 배열에 넣어서 사용하는 방식을 써왔는데 이런 이유는 처음에는 import를 해오지 않고 src링크로만 폴더에 접근을 해서 이미지를 가져오려고 하니 되지 않았던 것이다.
const srcarray = ["https://user-images.githubusercontent.com/98297436/216630777-e6bf3f13-ec80-4596-b36f-c70ddee5085b.jpg",
"https://user-images.githubusercontent.com/98297436/216636101-7b2184a7-8d0f-4d76-8615-fbd8bae602c8.jpg",
"https://user-images.githubusercontent.com/98297436/216637176-e221ab1a-260e-4818-8b54-ed0c886b40c1.jpg",
"https://user-images.githubusercontent.com/98297436/216636101-7b2184a7-8d0f-4d76-8615-fbd8bae602c8.jpg",
"https://user-images.githubusercontent.com/98297436/216637186-76faf753-77a6-4e8a-839f-0cd8c54e41ef.jpg",
]
import banner1 from '../image/banner1.jpg';
import banner2 from '../image/banner2.jpg';
import banner3 from '../image/banner3.jpg';
export const srcarray = [
{
id: 1,
name: ' 신발',
bannercolor: '#F2F2F2',
img: `${banner1}`,
},
{
id: 2,
name: ' 의류',
bannercolor: '#9094A5',
img: `${banner2}`,
},
{
id: 3,
name: ' 후드',
bannercolor: '#99A6B6',
img: `${banner3}`,
},
]
const srcarray = [ swiper1,swiper2,swiper3,swiper4,swiper5]
const newcolor = ['#F5F3F3','#E7E3EF','#6A665E','#93586E','#F0EAE5']
const linkarray = ["/exhibitions/1","exhibitions/2","/exhibitions/3","/exhibitions/4",'/exhibitions/5']
for(let i = 0; i<=4; i++) {
let sildeEl = document.createElement('div');
sildeEl.className = 'swiper-slide';
sildeEl.style.backgroundColor = `${newcolor[i]}`;
const bannerimgEl = document.createElement('img')
const linkEl = document.createElement('a')
linkEl.href = linkarray[i]
bannerimgEl.src = srcarray[i]
bannerimgEl.alt = 'banner';
wrapperHTML.append(sildeEl);
sildeEl.append(linkEl);
linkEl.append(bannerimgEl);
// main swiper-banner
import swiper1 from '../image/bannerswiper1.jpg';
import swiper2 from '../image/bannerswiper2.jpg';
export const srcarray = [
{
id: 1,
name: ' 스마트워치',
newcolor: '#F5F3F3',
img: `${swiper1}`,
},
{
id: 2,
name: 'Apple',
newcolor: '#E7E3EF',
img: `${swiper2}`,
},
]
srcarray.map((banner) => {
let sildeEl = document.createElement('div');
sildeEl.className = 'swiper-slide';
sildeEl.style.backgroundColor = `${banner.newcolor}`;
const bannerimgEl = document.createElement('img')
const linkEl = document.createElement('a')
linkEl.href = `/exhibitions/${banner.name}`
bannerimgEl.src = `${banner.img}`
bannerimgEl.alt = 'banner';
wrapperHTML.append(sildeEl);
sildeEl.append(linkEl);
linkEl.append(bannerimgEl);
})
/exhibitions/${banner.name}
끝에 banner.name을 붙여줌으로서 banner img를 눌렀을 때 그 name이 주소에 들어가게 변경const router = new Navigo('/')
router
.on('/exhibitions/1', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(' 신발', 12)
footerbanner()
appendFooter()
})
.on('/exhibitions/2', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts('Apple', 12)
footerbanner()
appendFooter()
})
.on('/exhibitions/3', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(' 후드','8')
footerbanner()
appendFooter()
})
.on('/exhibitions/4', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(' 셔츠', 20)
footerbanner()
appendFooter()
})
.on('/exhibitions/5', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(' 셔츠', 20)
footerbanner()
appendFooter()
})
.on('/exhibitions/6', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(' 스니커즈', 20)
footerbanner()
appendFooter()
})
.on('/exhibitions/7', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(' 신발', 20)
footerbanner()
appendFooter()
})
.on('/exhibitions/8', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(' 후드', 20)
footerbanner()
appendFooter()
})
.on('/exhibitions/9', function () {
document.body.innerHTML = ''
appendProducts('Chanel', 8)
document.body.innerHTML = ''
appendHeadersub()
appendProducts('Miu Miu', 8)
footerbanner()
appendFooter()
})
.on('/exhibitions/10', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(' 후드', 20)
footerbanner()
appendFooter()
})
.on('/exhibitions/11', function () {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(' 패딩', 20)
footerbanner()
appendFooter()
}).resolve()
const router = new Navigo('/')
router
.on('/exhibitions/:name', function ({ data }) {
document.body.innerHTML = ''
appendHeadersub()
appendProducts(data.name, 12)
footerbanner()
appendFooter()
}).resolve()
/exhibitions/${banner.name}
여기로 배너 name이 들어가고 위주소 name을 data 가져와서 appendProducts(data.name, 12) 여기로 넣어주면 banner 이미지에 맞는 name이 appendProducts로 들어와 상품목록이 이에 맞게 보여준다.