Vue 는 tab 내 비게 이 션 표시 줄 을 실현 하고 좌우 슬라이딩 기능 을 지원 합 니 다.
tab 탐색 표시 줄 레이아웃:
<section class="theme-list">
<div class="fixed-nav" ref="fixednav">
<div class="fixed-nav-content">
<p
v-for="(item, index) in theme"
:key="index"
:class="['tab-title', activeId === index && 'select-tab']"
@click="changeTab(index, $event)"
>
{{ item }}
</p>
</div>
</div>
</section>
theme: ['CSDN ', ' ', ' ', ' ', ' ', ' '],
activeId: 0
탐색 표시 줄 스타일 코드:
.theme-list {
margin-top: 12px;
}
.fixed-nav {
overflow-x: scroll;
-webkit-overflow-scrolling: touch;
}
.fixed-nav-content {
display: flex;
}
.tab-title {
padding: 0 13px;
margin-right: 12px;
color: #141414;
border-radius: 13px;
font-size: 12px;
flex-shrink: 0;
height: 0.52rem;
line-height: 0.52rem;
}
이때 우 리 는 아래 스타일 을 실현 할 수 있 고 좌우 로 tab 를 미 끄 러 뜨 릴 수 있 습 니 다.주의해 야 할 것 은 스타일 코드 에
flex-shrink : 0
를 추가 해 야 tab 너비 가 외부 용기 너비 보다 클 때 수축 되 지 않 습 니 다.이렇게 해서 우리 의 기본 적 인 tab 네 비게 이 션 표시 줄 은 이미 실현 되 었 습 니 다.지금 우 리 는'중간고사 파 이 팅'을 클릭 할 때 전체 tab 가 왼쪽으로 미 끄 러 지고 나머지 tab 요 소 를 표시 합 니 다.
changeTab(id, event) {
//
if (id !== this.activeId) {
this.activeId = id;
// ,
const spanLeft = event.clientX; //
const divBox = document.querySelector(".select-tab").clientWidth / 2; //
const totalWidths = document.body.clientWidth; //
const widths = totalWidths / 2; //
const spanRight = totalWidths - spanLeft; //
const scrollBox = document.querySelector(".fixed-nav"); //
const scrollL = scrollBox.scrollLeft; //
// 100
if (spanRight < 100 || spanLeft < 100) {
scrollBox.scrollLeft = scrollL + (spanLeft - widths) + divBox;
}
}
}
이 방법 을 통 해 tab 의 자동 스크롤 을 실현 할 수 있 지만 이때 또 하나의 문 제 는 미 끄 러 질 때 스크롤 바 가 나타 나 는 것 이 분명 아름 답지 않다 는 것 이다.
/* */
::-webkit-scrollbar {
width: 0.01rem;
opacity: 0;
display: none;
}
/* + */
::-webkit-scrollbar-track {
background-color: #fff;
opacity: 0;
}
/* + */
::-webkit-scrollbar-thumb {
width: 0.01rem;
border-radius: 0.01rem;
opacity: 0;
}
이렇게 하면 네 비게 이 션 바 가 실 현 됩 니 다.회사 의 업무 와 결합 하여 네 비게 이 션 바 의 스타일 을 수정 하면 됩 니 다!Vue 구현 tab 내 비게 이 션 표시 줄,좌우 슬라이딩 지원 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Vue 좌우 슬라이딩 내 비게 이 션 표시 줄 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue Render 함수로 DOM 노드 코드 인스턴스 만들기render에서createElement 함수를 사용하여 DOM 노드를 만드는 것은 직관적이지 않지만 일부 독립 구성 요소의 디자인에서 특수한 수요를 충족시킬 수 있습니다.간단한 렌더링 예는 다음과 같습니다. 또한 v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.