日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue tab滾動到一定高度,固定在頂部,點擊tab切換不同的內容操作

瀏覽:97日期:2022-12-30 16:12:33

template里面:

<!-- tab切換star --> <ul :class='{fixTitle:whether}'> <li @click='curId=0' :class='{’cur’:curId===0}'>產品特點</li> <li @click='curId=1' :class='{’cur’:curId===1}'>投保須知</li> <li @click='curId=2' :class='{’cur’:curId===2}'>理賠流程</li> </ul> <!-- 切換內容star -->

設置fixTitle的樣式,固定在頂部,cur是當前tab點擊的顏色

<div class='tab-con'> <div v-show='curId===0'> 第一部分內容 </div> <div v-show='curId===1'> 第二部分內容 </div> <div v-show='curId===2'> 第三部分內容 </div></div>

當點擊第一個產品特點的時候,對應下面的第一部分內容,點擊投保須知對應第二部分內容,點擊理賠流程對應第三部分內容

data里面:

data(){ return:{ whether:false, curId:0 }}

curId默認為0,展示的是產品特點的內容,也就是第一部分內容

methods里面:

設置滾動效果:

handleScroll() { var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; // console.log(scrollTop) if(scrollTop>329){ this.whether = true; }else{ this.whether = false; } },

在mounted里面:

window.addEventListener('scroll', this.handleScroll);

補充知識:vue組件之自定義tab切換組件(吸頂、滾動定位)等效果

目標問題

進入頁面后,滾動一定距離使其吸頂。滾動到某DOM可視區域后,Tab攔當前選項主動滑動到該DOM上。且點擊tab攔會定位到對應的dom位置。

vue tab滾動到一定高度,固定在頂部,點擊tab切換不同的內容操作

實現效果動圖

vue tab滾動到一定高度,固定在頂部,點擊tab切換不同的內容操作

實現目的——html結構

<template> <div :style='prop.box_style ? prop.box_style : ’’'> <div class='tab__div'> <ul :style='prop.attr.tab_style ? prop.attr.tab_style : ’’'><li v-for='(tabs, index) in prop.attr.tab_content' :key='tabs.tab_menu' @click='onClickTabs(index)'> <span :style='tabStyle(index)'>{{ tabs.tab_menu }}</span></li> </ul> <div :style='prop.attr.cur_slide_style ? prop.attr.cur_slide_style : ’’'></div> </div> </div></template>

實現目的——less樣式

.tab__div { width: 100%; height: 102px; position: relative; padding-top: 36px; background-color: #fff; .tab__list { display: flex; .tab__item { flex: 1; font-size: 32px; } .tab__item-current { font-weight: 700; } } .active__line { position: absolute; bottom: 0; left: 0; width: 187.5px; height: 5px; background-color: #4B8FFB; transition: all 300ms; }}

實現目的——js部分

export default { name: ’TabModule’, props: { prop: { type: Object } }, data () { return { scrolltop: null, dom: null, domobj: {} // 各個dom的頁面位置 } }, computed: { tabStyle () { return function (params) {return this.prop.attr.tab_content[params].tab_style || ’’ } } }, mounted () { this.onWatchScroll() // 這里首次進入頁面當前選中項為第一個 document.querySelectorAll(’.tab__item’)[0].style = this.prop.attr.cur_tab_style ? this.prop.attr.cur_tab_style : ’’ }, methods: { // 獲取各個dom的頁面位置 getDomsObj () { this.domobj.dom1 = document.querySelectorAll(`#${this.prop.attr.tab_content[0].anchor_point}`)[0].offsetTop this.domobj.dom2 = document.querySelectorAll(`#${this.prop.attr.tab_content[1].anchor_point}`)[0].offsetTop this.domobj.dom3 = document.querySelectorAll(`#${this.prop.attr.tab_content[2].anchor_point}`)[0].offsetTop this.domobj.dom4 = document.querySelectorAll(`#${this.prop.attr.tab_content[3].anchor_point}`)[0].offsetTop }, // 計算當前選中滑動塊兒的滑動距離和當前選中項 computerSlide (val) { let tablist = document.querySelectorAll(’.tab__item’) for (let i = 0; i < tablist.length; i++) {tablist[i].style = ’’ } document.querySelector(’.active__line’).style.transform = `translateX(${(val * document.querySelector(’.active__line’).offsetWidth)}px)` // 當前選中的tab_item的狀態 tablist[val].style = this.prop.attr.cur_tab_style ? this.prop.attr.cur_tab_style : ’’ }, onClickTabs (index) { this.computerSlide(index) // 計算點擊后滑動到DOM的位置 this.dom = document.querySelectorAll(`#${this.prop.attr.tab_content[index].anchor_point}`)[0].offsetTop let tabbox = document.querySelectorAll(’.tab__div’)[0] if (index === 0) {if (tabbox.style.position === ’relative’) { window.scrollTo(0, this.dom - tabbox.clientHeight) return}window.scrollTo(0, this.dom)return } if (index === 3) {window.scrollTo(0, this.dom)return } if (tabbox.style.position === ’relative’) {window.scrollTo(0, this.dom - (tabbox.clientHeight * 2)) } else {window.scrollTo(0, this.dom - tabbox.clientHeight) } }, onWatchScroll () { let tabmain = document.querySelectorAll(’.tab__main’)[0] let tabdiv = document.querySelectorAll(’.tab__div’)[0] tabdiv.style.top = 0 window.onscroll = () => {// 由于在created()或者mounted()鉤子函數中獲取到的dom位置不對,在滑動中獲取dom的頁面位置this.getDomsObj()this.scrolltop = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset// 滑動根據滾動距離來計算當前可是區域的選中項this.onScrollPage()// 自定義吸頂效果if (this.scrolltop > tabmain.offsetTop) { tabdiv.style.position = ’fixed’ tabdiv.style[’z-index’] = 99} else { tabdiv.style.position = ’relative’ tabdiv.style[’z-index’] = 0} } }, onScrollPage () { let tab = document.querySelectorAll(’.tab__div’)[0] if (this.scrolltop > this.domobj.dom1 && this.scrolltop < (this.domobj.dom2 - tab.offsetHeight * 2)) {this.computerSlide(0) } else if (this.scrolltop > (this.domobj.dom2 - tab.offsetHeight * 2) && this.scrolltop < this.domobj.dom3 - tab.offsetHeight * 2) {this.computerSlide(1) } else if (this.scrolltop > (this.domobj.dom3 - tab.offsetHeight * 2) && this.scrolltop < (this.domobj.dom3 + tab.offsetHeight * 2)) {this.computerSlide(2) } else if (this.scrolltop > (this.domobj.dom4 - tab.offsetHeight * 10) && this.scrolltop < this.domobj.dom4) {this.computerSlide(3) } } }}

完成目的——頁面引用組件

<template> <div> <div class='div__header'></div> <tab-module :prop='tabattributes'></tab-module> <div : v-for='(item, index) in fordiv' :key='item'>{{ item }}</div> <div class='div__footer'>我是有底線的</div> </div></template>import TabModule from ’../../components/TabModule.vue’export default { components: { TabModule }, data () { return { tabattributes: {box_style: 'margin-top: 10px;', attr: {cur_tab_style: 'font-weight: 700;', cur_slide_style: '', tab_content: [{ tab_menu: '控件1', anchor_point: 'DomPoint1', tab_style: '' }, { tab_menu: '控件2', anchor_point: 'DomPoint2', tab_style: '' }, { tab_menu: '控件3', anchor_point: 'DomPoint3', tab_style: '' }, { tab_menu: '控件4', anchor_point: 'DomPoint4', tab_style: '' }]} }, fordiv: [’頁面控件1’, ’頁面控件2’, ’頁面控件3’, ’頁面控件4’] } }}<style lang='less' scoped>.div__header { width: 100%; height: 200px; background-color: #909;}.div__item { width: 100%; height: 400px; background-color: rgb(78, 215, 224); text-align: center; font-size: 26px;}.div__footer { width: 100%; height: 200px; background-color: #090;}</style>

以上這篇vue tab滾動到一定高度,固定在頂部,點擊tab切換不同的內容操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费在线播放第一区高清av| 久久亚洲欧美| 日本久久二区| 日韩精品一级中文字幕精品视频免费观看 | 亚洲人成在线影院| 亚洲一区激情| 精品91久久久久| 欧美日韩国产在线一区| 亚洲激情二区| 鲁大师成人一区二区三区| 乱人伦精品视频在线观看| 日韩影院免费视频| 亚洲免费专区| 日韩一区二区三免费高清在线观看| 亚洲激情黄色| 男人的天堂久久精品| 亚洲精品系列| 国产欧美日韩精品一区二区三区| 日韩国产在线观看| 亚洲一级淫片| 日韩av午夜在线观看| 91精品国产经典在线观看| 欧美一区=区三区| 国产日韩欧美一区| 欧美韩一区二区| 水蜜桃久久夜色精品一区| 日韩国产一区二区| 婷婷成人基地| 亚洲精品成人一区| 欧美片第1页综合| 国产乱码精品一区二区亚洲| 国产精品一区2区3区| 国产一区三区在线播放| 国产黄大片在线观看| 亚洲伦乱视频| 国产午夜精品一区二区三区欧美| 亚洲性视频在线| 国产日韩欧美三区| 亚洲天堂资源| 亚洲一区欧美二区| 亚洲精品在线国产| 久久字幕精品一区| 啪啪亚洲精品| 91一区二区| 欧美精品九九| 清纯唯美亚洲综合一区| 国产精品久久久久久久久久10秀 | 麻豆91精品| 国产乱子精品一区二区在线观看| 国产一区二区三区91| 亚洲视频综合| 日本亚洲最大的色成网站www| 精品国产午夜| 婷婷六月综合| 国产精区一区二区| 伊人久久视频| 乱人伦精品视频在线观看| 欧美午夜网站| 欧美成人基地| 青青草国产成人99久久| 日韩在线免费| 亚洲精品三级| 国产aⅴ精品一区二区四区| 亚洲国产专区| 国产欧美69| 999国产精品永久免费视频app| 亚洲三级网站| av在线最新| 亚洲人成网站在线在线观看| 国产不卡精品| 亚洲免费福利一区| 日韩欧美三级| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精久久久| 久久福利影视| 成人国产精品久久| 性欧美长视频| 福利一区视频| 日韩精品一级| 国产专区一区| 老牛国内精品亚洲成av人片| 亚洲视频www| 久久精品三级| 亚洲精品在线二区| 久久精品国内一区二区三区水蜜桃| 亚洲+小说+欧美+激情+另类| 久久精品卡一| 久久国产精品免费一区二区三区| 久久精品欧美一区| 免费看久久久| 日日摸夜夜添夜夜添国产精品| 超碰超碰人人人人精品| 国产欧美在线| 亚洲精品动态| 偷拍欧美精品| 狠狠久久伊人中文字幕| 日韩在线观看中文字幕| 欧美一区二区三区激情视频| 国产精品伦一区二区| 亚洲黄页一区| 久久久久国产一区二区| 麻豆精品在线视频| 视频一区在线播放| 日韩成人高清| 成人免费一区| 欧美91在线| 日韩av中文字幕一区二区三区| 亚洲激情久久| 少妇精品导航| 91视频一区| 精品国产一区二区三区av片| 日本欧美一区| 一区二区三区四区日韩| 美女少妇全过程你懂的久久| 国产一区二区精品福利地址| 久久国产日韩欧美精品| 亚洲网址在线观看| 欧美成人国产| 婷婷综合六月| 久久电影tv| 福利一区二区| 福利精品一区| 久久免费福利| 国产精品免费不| 欧美伊人久久| 91福利精品在线观看| 欧美一级一区| 国产亚洲电影| 国产免费av国片精品草莓男男| 日本一区福利在线| 亚洲人成高清| 伊人www22综合色| 蜜桃视频在线观看一区| 国产精品腿扒开做爽爽爽挤奶网站| 波多野结衣一区| 亚洲激情社区| 亚洲精华国产欧美| 亚洲在线一区| 在线精品福利| 色8久久久久| 青青草91久久久久久久久| 国产日韩欧美三区| 麻豆精品久久| 国产成人精品一区二区三区免费| 荡女精品导航| 免费高潮视频95在线观看网站| 日韩久久一区二区三区| 亚洲黄色免费av| 久久久久国产精品一区三寸| 亚洲夜间福利| 亚洲在线网站| 亚洲欧美在线专区| 国产日产精品_国产精品毛片 | 国产精品mm| 电影91久久久| 久久激情网站| 丝袜a∨在线一区二区三区不卡| 免费欧美一区| 日韩中文欧美在线| 日本不卡视频在线观看| 国产乱人伦丫前精品视频| 成人亚洲一区二区| 亚洲高清av| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩欧美2区| 国产精品黄色片| 国产一区二区三区网| 91精品一区国产高清在线gif| 亚洲欧美日韩视频二区| 日韩精品免费视频一区二区三区| 国产精品亲子伦av一区二区三区| 精品视频免费| a日韩av网址| 免费精品国产的网站免费观看| 免费成人在线影院| 日韩和欧美一区二区| 精品视频久久| 在线精品小视频| 日韩高清在线不卡| 精品国产精品久久一区免费式| 亚洲www啪成人一区二区| 免播放器亚洲| 国产日韩欧美中文在线| 啪啪国产精品| 欧美一区91| 亚洲电影有码| 日韩精品一区二区三区av| 国产精品777777在线播放| 精品国模一区二区三区| 亚洲精品综合| 精品久久网站| 亚洲欧洲另类| 欧美午夜三级| 日韩一区二区三区免费| 中文字幕乱码亚洲无线精品一区| 免费一区二区三区在线视频| 亚洲天堂一区二区| 日本免费新一区视频| 成人高清一区| 亚州av日韩av|