일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 시맨틱 마크업
- 신박한 디자인
- 이미지 리플레이스먼트
- 유니크
- Image Replacement
- 스크롤 웹디자인
- jQuery
- 접근성
- 디자인
- 웹 접근성
- mark up
- 이쁜 웹디자인
- 귀여운 웹디자인
- 3D
- 우주 웹디자인
- 신박한 웹디자인
- 웹디자인
- 배경이 이쁜 웹디자인
- 시맨틱
- 스크롤
- 웹사이트
- 마크업
- IR기법
- 깔끔한 웹디자인
- 스크롤 웹사이트
- 특이한 웹디자인
- 사람 일러스트
- jquery 웹디자인
- 일러스트
- 마우스오버
- Today
- Total
Play Ground
[Vue.js] 페이징 로직 본문
<ul class="pagination"> <!-- 이전 --> <li class="paginate_button previous" :class="isFirstOrLast(results.first)" id="noticeList_previous"> <a href="javascript:;">Previous</a> </li> <!-- 첫 페이지 --> <li class="paginate_button" :class="(1 == (results.number+1))? 'active' : ''"> <a href="javascript:;" @click="movePage(1)">1</a> <!-- ... --> <li class="paginate_button disabled" v-if="results.number > 3"> <a href="javascript:;">...</a> </li> </li> <!-- 반복되는 페이지 --> <li class="paginate_button" :class="(n == (results.number+1))? 'active' : ''" v-for="n in (results.totalPages-1)" v-if="showPagingButton(n)"> <a href="javascript:;" @click="movePage(n)">{{ n }}</a> </li> <!-- ... --> <li class="paginate_button disabled" v-if="results.number < results.totalPages - 4"> <a href="javascript:;">...</a> </li> <!-- 마지막 페이지 --> <li class="paginate_button" :class="(results.totalPages == (results.number+1))? 'active' : ''"> <a href="javascript:;" @click="movePage(results.totalPages)">{{ results.totalPages }}</a> </li> <!-- 다음 --> <li class="paginate_button next" :class="isFirstOrLast(results.last)" id="noticeList_next"> <a href="javascript:;">Next</a> </li> </ul>
showPagingButton: function(n) { const vm = this var thisPage = vm.results.number + 1 var totalPage = vm.results.totalPages + 1 //[조건] 5페이지가 넘어가면 //[결과] 1 ~ 4페이지 숨겨주기 var cond1 = (thisPage < 5) && (n > 5) //[조건] 마지막페이지 ~ 마지막페이지-4 까지이면 //[결과] 마지막페이지-4를 제외한 나머지 페이지들 숨겨주기 var cond2 = (thisPage > (totalPage - 5)) && (n < (totalPage - 5)) //[조건] 첫페이지, 끝페이지 //[결과] 숨겨주기 var cond3 = (n == 1) || (n == totalPage) //[조건] thisPage > 4 이면 //[결과] 현재 페이지의 바로 앞 페이지를 제외한 앞에 애들 숨겨주기 var cond4 = (thisPage > 4) && (n < (thisPage - 1)) && (n < (totalPage - 5)) //[조건] thisPage < 마지막페이지-4 이면 //[결과] 현재 페이지의 바로 뒷 페이지를 제외한 뒤에 애들 숨겨주기 var cond5 = (thisPage < (totalPage - 4)) && (n > (thisPage + 1)) && (n > 5) if(cond1 || cond2 || cond3 || cond4 || cond5) return false return true }, isFirstOrLast: function(boolean) { return boolean? "disabled" : "" }, movePage: function(page) { this.formData.page = page-1 this.getLog(this.id) }
위와같이 하긴 했는데;
좀더 고민이 필요할듯.
'Programming > Vue.js' 카테고리의 다른 글
[Vue.js] ubuntu에 nginx 설치하고 vue.js 설치하기 (1) | 2019.02.01 |
---|---|
[Vue.js] url 뒤에 붙는 #(hashtag) 없애기 (0) | 2019.01.13 |
[vue.js] Eventbus 만들기 (0) | 2018.10.22 |
[Vue.js] promise 사용하기 (0) | 2018.09.20 |
[Vue.js] class를 만들어 vue객체 사용하기 (0) | 2018.09.20 |
[Vue.js] mixin 전역 등록하기 (0) | 2018.09.20 |
[vue] img src data binding (0) | 2018.09.07 |
vue.js radio button 토글 이벤트 걸기 (0) | 2018.07.12 |