일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- react native safeArea
- 웹뷰 페이지 로딩
- gsap 기초
- 임고미
- safari wiondow.open
- reactnative 웹뷰 페이지 로딩
- styled component is not working
- react
- styled component
- 퍼블리셔
- React Native navigation
- scrollIntoView scrollTo
- 타입스크립트
- styled component 작동 안될때
- 트윈맥스 기초
- React-Native IOS
- react이론
- gsap
- rn webview page loading
- js 특정 위치로 이동
- 리액트
- 프론트앤드
- SafeArea 커스텀
- slick slider 간격
- React-Native 공부
- RN navitate push
- React Native SafeArea Custom
- JS
- input 숫자입력
- styled component 작동안함
Archives
- Today
- Total
개발공부 임고미
[Javascript] swiper 크기만큼 이동시켜주기 본문
728x90
300x250
1. html에 swiper를 만들어줍니다.
<div class="swiper-container-mainNav">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div id="main1"></div>
</div>
<div class="swiper-slide">
<div id="main2"></div>
</div>
<div class="swiper-slide">
<div id="main3"></div>
</div>
<div class="swiper-slide">
<div id="main4"></div>
</div>
</div>
</div>
2. 원하는 크기를 설정해줍니다.
.swiper-container-mainNav .swiper-wrapper {
width: auto !important;
}
.swiper-container-mainNav .swiper-wrapper .swiper-slide {
width: 190px !important;
}
.swiper-container-mainNav .swiper-wrapper .swiper-slide:nth-child(3) {
width: 140px !important;
}
원래 스와이퍼에서 제공하는 css가 있어서, 내가 정한 크기가 무시될 수 있으므로
!important 를 넣어줍니다.
저는 190px과 140px 두가지 크기를 설정하였습니다.
3. js 설정해주기
var mySwiperMainNav = new Swiper('.swiper-container-mainNav', {
width: 190
});
( 1 ) swiper 플러그인을 적용시켜줍니다.
function swiperPositionSet(el, Xposition, index) {
$(el).attr(
'style',
'transform:translate3d(' + Xposition[index] + 'px ,0px,0px); transition-duration: 300ms;'
);
}
( 2 ) 얼만큼 이동해줄지 정해주는 함수를 생성합니다.
- el : 이 것의
- Xposition[index]: 이만큼 움직이겠다.
function mainSlideChangeStart () {
var swiper_position_X = [0, -190, -380, -520];
swiperPositionSet(
'.swiper-container-mainNav .swiper-wrapper',
swiper_position_X,
mySwiperMainNav.realIndex
);
}
( 3 ) swiper-slide 의 넓이가 각각 190, 190, 140, 190이므로,
- swiper_position_X에 설정값을 하나하나 차례로 더해 넣어줍니다. (190 + 190 = 380 / 380 + 140 = 520 )
- swiper에서 실질적으로 움직이는 것은 'swiper-wrapper'이므로, 2번째 인자로는 swiper-wrapper을 넣어줍니다.
- Xposition[index] 은, swiper_position_X의 몇번쨰값? 과 같은 의미인데 = 1,2,3,4 순서로 나아가야하니
swiper.realIndex를 그대로 적용시켜주면 됩니다.
mySwiperMainNav.on('slideChangeTransitionStart', mainSlideChangeStart);
( 4 ) 마지막으로, 슬라이드가 움직이기 시작하면 이 함수를 실행시켜주겠다고 적용하면 완성입니다.
+ 팁
var mySwiperMainNav = new Swiper('.swiper-container-mainNav', {
width: 190
});
swiper에서는 width 값은 설정해주는걸 지향하지 않습니다.
그러나 이걸 설정해주지 않으면, 스와이퍼 한번 옮길때마다 190 씩 움직이지 않게됩니다.
따라서 필요에따라 width값을 적용해주면 한번 스와이프할떄 190만큼 이동을 하게 됩니다.
728x90
300x250
'퍼블리싱 > html css js' 카테고리의 다른 글
[Javascript] 반복문 for / forEach / map (0) | 2020.09.24 |
---|---|
[React / Js] 다음 우편번호 ie 버그 / 상세주소 입력 안될때 (0) | 2020.09.22 |
[Javascript] 아이폰 터치 민감도 높이기 (0) | 2020.09.16 |
[Javascript] input 글자수 체크하기 (0) | 2020.09.16 |
[Javascript] selectbox placehorder 만들기 (0) | 2020.09.14 |
Comments