滾動切換tab樣式的效果實現

2022-08-28 23:30:29 字數 863 閱讀 5183

效果大致描述:滑鼠滾動或者點選指定的tab時,相應的tab標籤樣式改變,另外四個樣式恢復預設,同時相應的內容顯示到可視區域。

思路:獲取頁面或者層的滾動高度,以及頁面內容每一部分的高度,當滾動時用js判斷高度之間的關係,從而為指定tab賦予樣式。而點選的效果可以用"使用標籤來做tab,頁面每部分用指定id的div包裹"的方式來實現。

關鍵點:

1.滾動高度的獲取。在獲取頁面的scrolltop值時始終獲取不到,採用document.documentelement.scrolltop的方式也是不行(使用的是chrome瀏覽器),最後採用刪掉doctype的方式來實現。

2.滾動事件的採用。一開始採用了自定義函式,將判斷和修改樣式封到函式內部,並使用setinterval的方式來持續呼叫,後來發覺此種方式不好,遂度娘,得出window.onscroll方式。

大致**如下:

1

var divy = document.getelementbyid('divid').offsethight;

2..多個div的獲取..

3 window.onscroll = function

();

上傳一張成品的圖:

大致效果就是這樣,滑鼠滾動或者點選左側的tab頁面都會滾動至相應位置,並且左邊的tab樣式會隨之變化,另有類似某些官網展示產品的頁面那種帶有滾動動畫的效果也可以利用這些原理配合jquery + jquery-mousewheel庫來做。

巢狀滾動效果實現討論

而且絕大多數的文章都是從如何解決手勢衝突出發給出相應的解決方案,原因是他們大多數都採用了 scrollview 的解決方案,如下圖 可以看到 scrollview 和 一級 scrollview都需要在縱向滾動,所以重點要解決的就是這裡的滾動衝突,具體的細節我就不再贅述,大家還可以參考hgperso...

CSS實現tab頁切換效果

tab也切換在前端頁面中是非常常見的一種效果。本人通過蒐集資料大致實現有有下面三種寫法。利用 hover選擇器 利用a標籤的錨點 target選擇器 利用label和radio的繫結關係和radio選中時的 checked來實現效果 只要指定label的 for 屬性到radio的id就行,或者用l...

用CSS實現Tab頁切換效果

最近切乙個頁面的時候涉及到了乙個tab切換的部分,因為不想用js想著能不能用純css的選擇器來實現切換效果。搜了一下大致有下面三種寫法。利用 hover選擇器 利用a標籤的錨點 target選擇器 利用label和radio的繫結關係和radio選中時的 checked來實現效果 經過實驗發現第三種...