vue better-scroll 스크롤 플러그 인 배출 구
5487 단어 vuebetter-scroll
스크롤 원리
better-scroll 은 무슨 스크롤 원리 입 니까?
better-scroll 은 모 바 일 엔 드(PC 지원)의 각종 스크롤 장면 수 요 를 중점적으로 해결 하 는 플러그 인 입 니 다.그 핵심 은 참고 한 iscroll 의 실현 이다.그의 API 디자인 은 기본적으로 iscroll 을 호 환 하고 iscroll 을 바탕 으로 feature 를 확장 하 며 성능 최적화 도 했다.
better-scroll 은 원생 JS 를 바탕 으로 이 루어 진 것 으로 어떠한 프레임 워 크 에 도 의존 하지 않 습 니 다.컴 파일 된 코드 크기 는 63kb 이 고 압축 후 35kb 이 며 gzip 후 9kb 에 불과 하 며 매우 가 벼 운 JS lib 입 니 다.
녹색 부분 은 wrapper,즉 부모 용기 로 고정 높이 가 있 습 니 다.노란색 부분 은 content 입 니 다.부모 용기 의 첫 번 째 키 요소 입 니 다.그 높이 는 내용 의 크기 에 따라 높 아 집 니 다.그러면 콘 텐 츠 의 높이 가 부모 용기 의 높이 를 초과 하지 않 으 면 스크롤 할 수 없 으 며,부모 용기 의 높이 를 초과 하면 콘 텐 츠 영역 을 스크롤 할 수 있 습 니 다.가로 스크롤 의 원 리 는 고정 높이 를 고정 너비 로 바 꾸 는 것 이다.여 긴 잔소리 안 할 게 요)
세로 스크롤
쓸데없는 말 은 그만 하고 우 리 는 직접 코드 를 찍 었 다.
<template>
<div class="wrapper" ref="wrapper">
<ul>
<li v-for="item in 8">{{item}}</li>
</ul>
</div>
</template>
<script>
import BScroll from 'better-scroll';
export default {
mounted() {
this.$nextTick(() => {
this.scroll = new BScroll(this.$refs.wrapper);
});
}
};
</script>
<style type="text/css">
.wrapper{
overflow:hidden;
height:100vh;
}
ul li{
height:400px;
}
</style>
이것 은 Vue Better Scroll 수직 스크롤 demo 입 니 다.여기 서 주의해 야 할 것 은 두 가지 가 있 습 니 다.4
가로 스크롤,세로 스크롤 보 다 는 스크롤 구역 의 폭 을 동적 으로 가 져 와 코드 를 직접 올 려 야 합 니 다.
<template>
<div class="tab" ref="tab">
<ul class="tab_content" ref="tabWrapper">
<li class="tab_item" v-for="item in itemList" ref="tabitem">
{{item.title}}
</li>
</ul>
</div>
</template>
<script>
import BScroll from 'better-scroll';
export default {
data() {
return{
itemList:[
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
},
{
'title':' '
}
]
}
},
created() {
this.$nextTick(() => {
this.InitTabScroll();
});
},
methods:{
InitTabScroll(){
let width=0
for (let i = 0; i <this.itemList.length; i++) {
width+=this.$refs.tabitem[0].getBoundingClientRect().width; //getBoundingClientRect()
}
this.$refs.tabWrapper.style.width=width+'px'
this.$nextTick(()=>{
if (!this.scroll) {
this.scroll=new BScroll(this.$refs.tab, {
startX:0,
click:true,
scrollX:true,
scrollY:false,
eventPassthrough:'vertical'
});
}else{
this.scroll.refresh()
}
});
}
}
};
</script>
<style lang="scss" scoped>
.tab{
width: 100vw;
overflow: hidden;
padding:5px;
.tab_content{
line-height: 2rem;
display: flex;
.tab_item{
flex: 0 0 60px;
width:60px;
}
}
}
</style>
가로 스크롤 은 주의 가 필요 합 니 다.4
tips:위의 코드 는 직접 사용 할 수 있 습 니 다.어린이 들 이 의존 을 설치 한 후 바로 copy 테스트 를 할 수 있 습 니 다~
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.