이동 단 관성 슬라이딩&리 턴 Vue 네 비게 이 션 바 구성 요소 ly-tab 쓰기
npm install ly-tab -S
또는yarn add ly-tab
에서 사용 할 수 있 으 며 구체 적 인 용법 은 다음 과 같다.자,효과 부터 봅 시다.
좋 습 니 다.쓸데없는 말 을 하기 시 작 했 습 니 다.실습 한 지 3 개 월 이 얼마 되 지 않 았 습 니 다.그 동안 지도 교수 님 을 따라 프로젝트 도 접 했 고 많은 것 을 배 웠 습 니 다.접 한 프로젝트 는 대체적으로 모 바 일 프로젝트 이 고 프레임 워 크 는 주로 Vue 를 사 용 했 습 니 다.이동 단 이나 이동 단 앱(퉤,개소리)을 사용 한 적 이 있 는 학생 들 은 위 와 같은 미끄럼 효과 가 있 는 tab 네 비게 이 션 표시 줄 을 많이 발견 할 것 이다.금 을 파 는 첫 페이지 에서 보 셨 을 것 이 라 고 믿는다.
사고의 방향 을 실현 하 다.
그 당시 프로젝트 에 도 이런 수요 가 있 었 습 니 다.그래서 저 는 게 으 름 을 피 워 서 Mint-ui 구성 요소 창고 에 있 는 tabbar 와 tab-item 구성 요 소 를 직접 사용 하고 싶 었 습 니 다.github 에서 그의 실현 소스 코드 를 보 았 는데 전환 기능 만 실 현 했 지만 미 끄 러 지지 않 았 습 니 다.so,게 으 름 을 피 울 수 없 으 면 스스로 쓸 수 밖 에 없 었 습 니 다.
사실 tab 전환 기능 만 실현 하 는 것 은 어렵 지 않 습 니 다.mint-ui 가 사용 하 는 것 은 v-model 문법 사탕 입 니 다.아래 와 같 습 니 다.
<ly-tab v-model="selected">
<ly-tab-item></ly-tab-item>
</ly-tab>
다음은 v-model 문법 사탕 을 분해 하 는 실현 입 니 다.
<ly-tab :value="selected" @input="selected = arguments[0]">
<ly-tab-item></ly-tab-item>
</ly-tab>
그 다음 에 tab-item 구성 요소 에서 자신 이 클릭 되 었 을 때 부모 구성 요소 인 ly-tab 구성 요소$emit 하나의 input 이 벤트 를 실현 하고 모든 tab-item 의 유일한 값 을 첫 번 째 매개 변수 로 표시 합 니 다.이 유일한 값 에 대해 mint-ui 는 사용자 가 수 동 으로 모든 tab-item 에 props 를 통 해 유일한 id 값 을 입력 해 야 합 니 다.다음 과 같이 Mint UI 의 데모 구현:
<mt-tabbar v-model="selected">
<mt-tab-item id=" ">
<img slot="icon" src="http://placehold.it/100x100">
<span slot="label"> </span>
</mt-tab-item>
</mt-tabbar>
하지만 사내 vue 에서 Tabbar 플러그 인 을 디자인 하 는 것 을 보고 생각 한 후에 글 의 그런 방법 이 더 좋 을 것 같 습 니 다.부모 구성 요소 인 <ly-tab-item/>
구성 요소 의 index 색인 값 을 유일한 표지 값 으로 하면 되 지 않 습 니까?질문 이 왔 습 니 다:어떻게 tab-item 구성 요소 내부 에서 자신의 index 값 을 찾 습 니까?
우선 ly-tab 구성 요소
<ly-tab-item/>
는 하나의 배열 입 니 다.각$children
로 만 들 때$children
구성 요소 마다 유일한 index 값 이 아 닙 니 다.실제로 여기 서 전환 을 클릭 하면 이 루어 진다.다음은 tab-item.vue 의 코드 를 붙 입 니 다.tab-item.vue
<template>
<a class="ly-tab-item"
:style="$parent.value === id ? activeStyle : {}"
@click="$parent.$emit('input', id)">
<div class="ly-tab-item-icon"><slot name="icon"></slot></div>
<div class="ly-tab-item-label"><slot></slot></div>
</a>
</template>
<script>
export default {
name: 'LyTabItem',
computed: {
activeStyle () {
return {
color: this.$parent.activeColor,
borderColor: this.$parent.activeColor,
borderWidth: this.$parent.lineWidth,
borderBottomStyle: 'solid'
}
}
},
data () {
return {
id: (this.$parent.$children.length || 1) - 1
}
}
}
</script>
<style lang="scss">
.ly-tab-item {
text-decoration: none;
text-align: center;
.ly-tab-item-icon {
margin: 0 auto 5px;
}
.ly-tab-item-label {
margin: 0 auto 10px;
line-height: 18px;
}
}
</style>
tab.vue 에서 터치 슬라이딩,관성 슬라이딩,리 턴 등 효과 가 실현 되 는 것 에 대해 서 는 자세히 설명 할 수 없습니다.관심 있 는 동료 들 은 github 에서 볼 수 있 습 니 다.그래도 스타 를 시 켜 보 세 요.하하....................................................아이고,아니 야,아니 야.왜 스타 를 구하 기 시 작 했 어.가장 중요 한 건 아직 얘 기 안 했 어.리 타 브 는 어떻게 사용 하지?
ly-tab 사용 방법
젊은이 들 이 ly-tab 를 사용 하려 면 프로젝트 에서 npm 또는 yarn 을 통 해 다운로드 하여 설치 해 야 합 니 다.
npm install ly-tab -S
or
yarn add ly-tab
이 어 main.js 에서 전역 도입:
import Vue from 'vue';
import LyTab from 'ly-tab';
Vue.use(LyTab);
그 후에 프로젝트 에서(this.$parent.$children.length || 1) - 1
와 <ly-tab-item/>
구성 요 소 를 임의로 사용 할 수 있 습 니 다.다시 도입 할 필요 가 없습니다.밤.
<ly-tab v-model="selected" fixBottom>
<!-- selected data tab-item -->
<ly-tab-item v-for="(item, index) in tabList" :key="index">
{{item.itemName}}
</ly-tab-item>
</ly-tab>
위의 밤 은 사실 tabbar 의 실현 일 뿐 입 니 다.여러분 의 프로젝트 에서 보기 구역 의 전환 을 해 야 합 니 다.여기 서 제 가 현재 하고 있 는 방법 을 간단하게 말씀 드 리 겠 습 니 다.설정 항목
원 하 는 효 과 를 사용자 정의 하기 위해
<ly-tab></ly-tab>
구성 요소 에 설정 항목 을 입력 할 수 있 습 니 다.설정 항목
유형
묘사 하 다.
기본 값
lineWidth
Number
fixBottom 이 false 일 때 tabbar 아래쪽 border-width
1px
activeColor
String
활성화 상태 에서 글꼴 color 및 border-bottom-color
red
fixBottom
Boolean
보기 아래쪽 에 고정 할 지 여부(false 일 때 미 끄 러 지지 않 음)
false
additionalX
Number
경 계 를 초과 할 때 최대 드래그 거리 와 비슷 합 니 다.
50px
reBoundExponent
Number
관성 회 탄 지수(값 이 클 수록 폭 이 크 고 관성 회 탄 거리 가 길다)
10
sensitivity
Number
관성 이 미 끄 러 질 때의 민감 도(값 이 작 을 수록 저항력 이 크다)는 손 이 풀 린 후 속도 가 0 으로 줄 어드 는 데 걸 리 는 시간 과 비슷 하 다 고 볼 수 있다.
1000ms
reBoundingDuration
Number
재생 애니메이션 duration
360ms
총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 이동 단 관성 미끄럼&리 턴 Vue 네 비게 이 션 바 구성 요소 ly-tab 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.