線上直播原始碼,JS動態效果之,側邊欄滾動固定效果
線上直播原始碼,JS動態效果之,側邊欄滾動固定效果
結構程式碼:
<div class="slider-bar"> <span class="goBack">返回頂部</span> </div> <div class="header w">頭部區域</div> <div class="banner w">banner區域</div> <div class="main w">主體部分</div>
樣式程式碼:
.slider-bar { position: absolute; left: 50%; top: 300px; margin-left: 600px; width: 45px; height: 130px; background-color: pink; } .w { width: 1200px; margin: 10px auto; } .header { height: 150px; background-color: purple; } .banner { height: 250px; background-color: skyblue; } .main { height: 1000px; background-color: yellowgreen; } span { display: none; position: absolute; bottom: 0; }
JS程式碼:
// 獲取元素 var sliderbar = document.querySelector('.slider-bar'); var banner = document.querySelector('.banner'); var bannerTop = banner.offsetTop; // 獲取主體部分距離頂部的距離 var sliderbarTop = sliderbar.offsetTop - bannerTop; // 看上圖我們發現側邊欄是固定banner部分右邊的,因此我們要用兩個值相減獲取banner頂著瀏覽器頁面最上方的時候,側邊欄距離瀏覽器最上方的值。 document.addEventListener('scroll', function() { // 給【頁面】新增一個滾動事件,我們事件的物件時頁面的滾動。 if (window.pageYOffset >= bannerTop) { // 瀏覽器滾動上方被遮蓋住的部分大於bannerTop,也就是說banenr上方以及沒有東西了,再或者說header部分完全被滾動走了。 sliderbar.style.position = 'fixed'; sliderbar.style.top = sliderbarTop + 'px'; } else { sliderbar.style.position = 'absolute'; // 如果沒有滾動走,那就讓側邊欄還隨著頁面的滾動而滾動 sliderbar.style.top = 300 + 'px'; // 元素起初的位置 } if (window.pageYOffset >= mainTop) { goBack.style.display = 'block'; // 如果banner部分被滾動走了,那就讓側邊欄內容給顯示出來 } else { goBack.style.display = 'none'; // 否則不顯示 } // 3. 當我們點選了返回頂部模組,就讓視窗滾動的頁面的最上方 goBack.addEventListener('click', function() { // 裡面的x和y 不跟單位的 直接寫數字即可 // window.scroll(0, 0); // 因為是視窗滾動 所以物件是window animate(window, 0); }); // 動畫函式 function animate(obj, target, callback) { // console.log(callback); callback = function() {} 呼叫的時候 callback() // 先清除以前的定時器,只保留當前的一個定時器執行 clearInterval(obj.timer); obj.timer = setInterval(function() { // 步長值寫到定時器的裡面 // 把我們步長值改為整數 不要出現小數的問題 // var step = Math.ceil((target - obj.offsetLeft) / 10); var step = (target - window.pageYOffset) / 10; step = step > 0 ? Math.ceil(step) : Math.floor(step); if (window.pageYOffset == target) { // 停止動畫 本質是停止定時器 clearInterval(obj.timer); // 回撥函式寫到定時器結束裡面 // if (callback) { // // 呼叫函式 // callback(); // } callback && callback(); } // 把每次加1 這個步長值改為一個慢慢變小的值 步長公式:(目標值 - 現在的位置) / 10 // obj.style.left = window.pageYOffset + step + 'px'; window.scroll(0, window.pageYOffset + step); }, 15); } }) var main = document.querySelector('.main'); var mainTop = main.offsetTop; var goBack = document.querySelector('.goBack');
以上就是線上直播原始碼,JS動態效果之,側邊欄滾動固定效果, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2902915/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- css-虛線邊框滾動效果CSS
- 直播原始碼,懸浮窗滾動漸變色效果原始碼
- 直播app原始碼,根據頁面滾動高亮顯示目錄的側邊欄APP原始碼
- 直播app原始碼,標題欄隨頁面滑動之title移動定位效果APP原始碼
- 線上直播系統原始碼,橫向無限迴圈滾動的單行彈幕效果原始碼
- TornadoFx實現側邊欄選單效果
- 線上直播原始碼,自定義氣泡效果(BubbleView)原始碼View
- 成品直播原始碼推薦,js點選讓視窗抖動動畫效果原始碼JS動畫
- 線上直播系統原始碼,使用ValueAnimator實現view放大縮小動畫效果原始碼View動畫
- 直播軟體原始碼,實現頁面滾動到可視區顯示動畫效果原始碼動畫
- 隱藏滾動條保留滾動效果
- 直播app原始碼開源,Android 滾動的公告欄APP原始碼Android
- 成品直播原始碼,點選滑動切換效果原始碼
- jQuery固定側邊欄外掛ssMenujQuerySSM
- 影片直播原始碼,預設展開側邊欄選單原始碼
- 原生JS實現拋物線動畫以及動態模糊效果JS動畫
- 美化滾動條效果程式碼例項
- CSS3滾動條效果程式碼CSSS3
- 線上直播系統原始碼,迴圈滾動RecyclerView的實現原始碼View
- 直播軟體搭建,Android實現文字滾動播放效果Android
- CSS3邊框動態環繞效果CSSS3
- 微信小程式之文字向上滾動效果微信小程式
- 線上直播原始碼,自定義導航欄並固定居中對齊原始碼
- CSS 線條環形動態運動效果CSS
- 線上直播系統原始碼,Android開發之自帶陰影效果的shape原始碼Android
- 影片直播網站原始碼,flutter 頂部滾動欄頁面網站原始碼Flutter
- 直播原始碼網站,實現文字自動翻轉效果原始碼網站
- 線上直播系統原始碼,滾動式內容展示控制元件原始碼控制元件
- 線上直播系統原始碼,LinearLayout下多個ListView實現滾動原始碼View
- CSS水平無縫滾動效果CSS
- 【譯】定製Flutter滾動效果Flutter
- 前端實現文字滾動效果前端
- CSS完成視差滾動效果CSS
- HTML側邊部分內容滑動跟隨 左側跟隨滾動模組程式碼HTML
- 直播商城原始碼,vue 彈窗 慣性滾動 加速滾動原始碼Vue
- 一種離譜到極致的頁面側邊欄效果探究
- 直播app系統原始碼,圖片Loading旋轉動畫效果APP原始碼動畫
- 手機直播原始碼,實現圖片瀑布流式滑動效果原始碼