欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js上下視差滾動簡單實現(xiàn)代碼

 更新時間:2017年03月07日 08:38:04   作者:AndreaH  
這篇文章主要為大家詳細介紹了js上下視差滾動的簡單實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言: 項目中讓實現(xiàn)一個簡單的上下視差滾動,就是當頁面滑動到某一固定位置時,讓上下兩頁面出現(xiàn)疊加效果,恢復時,展開恢復。

功能技術(shù)實現(xiàn)方式:元素定位,鼠標事件

思路1:

一開始想著設置滾動條監(jiān)聽事件,當?shù)焦潭ㄎ恢脮r下方元素設置relative屬性(這樣可保證不改變其原有樣式而且可以實現(xiàn)元素位置的調(diào)整),于是就誕生出一下代碼:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
  </head>
  <style>
    body{
      margin: 0;
      padding: 0;
    }
    .div1{
      width: 100%;
      height: 500px;
      background: #FF0000;
      position: fixed;
      top: 0;
      left: 0;
    }
    .div2{
      width: 100%;
      margin-top: 500px;
      height: 1000px;
      background: #22B0FC;
      position: relative;
      z-index: 2;;
    }
  </style>
  <body>
    <div class="div1">1111111</div>
    <div class="div2">22222222222222</div>
  </body>
  <script src="jquery-1.8.3.min.js"></script>
  <script>
    $(document).ready(function () { 
      $(window).scroll(function () {
        var scrollTop=$(window).scrollTop();
        //$(window).scrollTop()這個方法是當前滾動條滾動的距離
        //$(window).height()獲取當前窗體的高度
        //$(document).height()獲取當前文檔的高度
        $('.div2').css('top',-scrollTop);
      });
    });
  </script>
</html>

問題:運行以上代碼就會發(fā)現(xiàn)有一個很明顯的bug,雖然大體功能已經(jīng)實現(xiàn)了,但是因為relative的元素不管如何移動,還是會占有原本的位置。然而我們的期望是,滾動條到達讓下方元素底部時就不應該滑動了,如何解決呢?

思路2:

我思考了良久,但是仍然沒發(fā)現(xiàn)可以讓元素既不占位置,又不改變自身樣式,所以我大膽放棄relative,選擇absolute定位,這個就需要我們自己做樣式的調(diào)整,具體代碼如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
  </head>
  <style>
    body{
      margin: 0;
      padding: 0;
    }
    .clearfix:after {
       content: '';
       display: block;
       clear: both;
      }
    .div1{
      width: 100%;
      margin: 0 auto;
      height: 500px;
      background: bisque;
      position: fixed;
      top: 0;
      left: 0;
    }
    .div1 div{
      width: 1200px;
      margin: 0 auto;
      height: 500px;
      background: #FF0000;
    }
    .div2{
      width: 1200px;
      margin: 0 auto;
      height: 1500px;
      background: #22B0FC;
      z-index: 20000;;
      margin-top: 500px;
    }
  </style>
  <body>
    <div class="div1 clearfix">
      <div>111111111111111111111111111111111111111</div>
    </div>
    <div class="div2">22222222222222</div>
  </body>
  <script src="jquery-1.8.3.min.js"></script>
  <script>
    var div2Height=Number($('.div2').offsetTop);
      var clientHeight=Number($(document).clientHeight);
      var totalHeight=div2Height-clientHeight;
      var objOffset=$('.div2').offset().top;
      var objOffsetLf=$('.div2').offset().left;
      $(document).ready(function () { //本人習慣這樣寫了
      $(window).scroll(function () {
        var scrollTop=$(window).scrollTop();
        var objHeight=objOffset-scrollTop;
        console.log(scrollTop);
         if(scrollTop>=0){
          $('.div2').css({'left':objOffsetLf,'top':objHeight,'position':'absolute','margin-top':'0px'});
        }else{
          $('.div2').css({'position':'static','margin-top':'500px'});
        }
      });
    });
  </script>
</html>

注意:①上半部分元素的位置需要保持不動②下半部分確保層級要高于上半部分③本代碼針對的是上半部分固定,如果想讓其跟著動,需要確保下半部分滾動速度要大于上半部分

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript實現(xiàn)復制文章自動添加版權(quán)

    JavaScript實現(xiàn)復制文章自動添加版權(quán)

    自己辛辛苦苦寫的文章,輕易就被別人復制-粘貼去了,是不是很傷心呢?小編今天給大家整理了兩個方法,讓別人復制自己的文章時,自動在文章的結(jié)尾添加自己的版權(quán)信息。
    2016-08-08
  • echarts使用中關(guān)于y坐標軸無法正常顯示的問題解決記錄

    echarts使用中關(guān)于y坐標軸無法正常顯示的問題解決記錄

    Echarts是由百度提供的數(shù)據(jù)可視化解決方案,下面這篇文章主要給大家介紹了關(guān)于echarts使用中關(guān)于y坐標軸無法正常顯示的問題解決記錄,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 微信小程序中使用ECharts 異步加載數(shù)據(jù)實現(xiàn)圖表功能

    微信小程序中使用ECharts 異步加載數(shù)據(jù)實現(xiàn)圖表功能

    本文通過實例代碼給大家介紹了微信小程序中使用ECharts 異步加載數(shù)據(jù)實現(xiàn)圖表功能,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • javascript屬性訪問表達式用法分析

    javascript屬性訪問表達式用法分析

    這篇文章主要介紹了javascript屬性訪問表達式用法,實例分析了javascript屬性訪問表達式的功能與使用方法,需要的朋友可以參考下
    2015-04-04
  • npm install報錯無法創(chuàng)建packge.json文件的解決辦法

    npm install報錯無法創(chuàng)建packge.json文件的解決辦法

    當你在運行 npm install 時遇到錯誤,提示無法找到 package.json 文件,也沒有創(chuàng)建一個 package.json 文件,只創(chuàng)建了一個package-lock.json文件,本文給大家介紹詳細的解決辦法,需要的朋友可以參考下
    2024-02-02
  • 詳解Chai.js斷言庫API中文文檔

    詳解Chai.js斷言庫API中文文檔

    這篇文章主要介紹了詳解Chai.js斷言庫API中文文檔,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 原生js代碼能實現(xiàn)call和bind嗎

    原生js代碼能實現(xiàn)call和bind嗎

    這篇文章主要介紹了原生js代碼能實現(xiàn)call和bind嗎,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 微信支付如何實現(xiàn)內(nèi)置瀏覽器的H5頁面支付

    微信支付如何實現(xiàn)內(nèi)置瀏覽器的H5頁面支付

    這篇文章主要介紹了微信支付如何實現(xiàn)內(nèi)置瀏覽器的H5頁面支付的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • js實現(xiàn)文字超出部分用省略號代替實例代碼

    js實現(xiàn)文字超出部分用省略號代替實例代碼

    關(guān)于超出一定字數(shù)用省略號顯示的問題,這種要求在我們?nèi)粘i_發(fā)的時候經(jīng)常見到,我們之前基本都是用CSS來完成的,今天給大家分享個Javascript實現(xiàn)這個功能的示例代碼,有需要的可以參考借鑒。
    2016-09-09
  • 淺談Webpack4 plugins 實現(xiàn)原理

    淺談Webpack4 plugins 實現(xiàn)原理

    在wabpack 核心功能除了loader應該就是plugins插件了,本文主要介紹了Webpack4 plugins 實現(xiàn)原理,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論