最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js上下視差滾動(dòng)簡(jiǎn)單實(shí)現(xiàn)代碼

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

前言: 項(xiàng)目中讓實(shí)現(xiàn)一個(gè)簡(jiǎn)單的上下視差滾動(dòng),就是當(dāng)頁(yè)面滑動(dòng)到某一固定位置時(shí),讓上下兩頁(yè)面出現(xiàn)疊加效果,恢復(fù)時(shí),展開(kāi)恢復(fù)。

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

思路1:

一開(kāi)始想著設(shè)置滾動(dòng)條監(jiān)聽(tīng)事件,當(dāng)?shù)焦潭ㄎ恢脮r(shí)下方元素設(shè)置relative屬性(這樣可保證不改變其原有樣式而且可以實(shí)現(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()這個(gè)方法是當(dāng)前滾動(dòng)條滾動(dòng)的距離
        //$(window).height()獲取當(dāng)前窗體的高度
        //$(document).height()獲取當(dāng)前文檔的高度
        $('.div2').css('top',-scrollTop);
      });
    });
  </script>
</html>

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

思路2:

我思考了良久,但是仍然沒(méi)發(fā)現(xiàn)可以讓元素既不占位置,又不改變自身樣式,所以我大膽放棄relative,選擇absolute定位,這個(gè)就需要我們自己做樣式的調(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 () { //本人習(xí)慣這樣寫了
      $(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>

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序多項(xiàng)選擇器checkbox

    微信小程序多項(xiàng)選擇器checkbox

    這篇文章主要為大家詳細(xì)介紹了微信小程序多項(xiàng)選擇器checkbox,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JavaScript實(shí)現(xiàn)twitter puddles算法實(shí)例

    JavaScript實(shí)現(xiàn)twitter puddles算法實(shí)例

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)twitter puddles算法實(shí)例,本文源自twitter的一道面試題,本文使用js解開(kāi)了這首題,需要的朋友可以參考下
    2014-12-12
  • JS字符串處理實(shí)例代碼

    JS字符串處理實(shí)例代碼

    這篇文章介紹了JS字符串處理實(shí)例代碼,有需要的朋友可以參考一下
    2013-08-08
  • Javascript中的delete介紹

    Javascript中的delete介紹

    關(guān)于JavaScript中的Delete一直沒(méi)有弄的很清楚,最近看到兩篇這方面的文章,現(xiàn)對(duì)兩文中部分內(nèi)容進(jìn)行翻譯(內(nèi)容有修改和添加,順序不完全一致,有興趣推薦看原文),希望能對(duì)大家有所幫助
    2012-09-09
  • 在webview中如何跳回小程序步驟詳解

    在webview中如何跳回小程序步驟詳解

    這篇文章主要介紹了在微信小程序中使用web-view組件嵌入網(wǎng)頁(yè)并實(shí)現(xiàn)從網(wǎng)頁(yè)跳回到小程序的步驟,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • 利用Ext Js生成動(dòng)態(tài)樹(shù)實(shí)例代碼

    利用Ext Js生成動(dòng)態(tài)樹(shù)實(shí)例代碼

    今天在公司幫同事寫了個(gè)用Ext Js生成動(dòng)態(tài)樹(shù)的Demo,在這里分享一下,也好供以后自己查閱。
    2008-09-09
  • Openlayers實(shí)現(xiàn)圖形繪制

    Openlayers實(shí)現(xiàn)圖形繪制

    這篇文章主要為大家詳細(xì)介紹了Openlayers實(shí)現(xiàn)圖形繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 聊聊JS動(dòng)畫庫(kù) Velocity.js的使用

    聊聊JS動(dòng)畫庫(kù) Velocity.js的使用

    本篇文章主要介紹了聊聊JS動(dòng)畫庫(kù) Velocity.js的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • iscroll碰到Select無(wú)法選擇下拉刷新的解決辦法

    iscroll碰到Select無(wú)法選擇下拉刷新的解決辦法

    本文主要介紹iscroll插件在使用中,遇到select下拉框無(wú)法下拉刷新的處理方法,希望能幫到大家。
    2016-05-05
  • JS?中在嚴(yán)格模式下?this?的指向問(wèn)題

    JS?中在嚴(yán)格模式下?this?的指向問(wèn)題

    這篇文章主要介紹了JS?中在嚴(yán)格模式下this的指向問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09

最新評(píng)論

即墨市| 呼玛县| 新丰县| 晋江市| 桃园市| 新平| 镇巴县| 楚雄市| 车致| 靖州| 定边县| 温州市| 怀安县| 西宁市| 措勤县| 渭源县| 平江县| 海盐县| 汽车| 南江县| 龙口市| 扎赉特旗| 焉耆| 刚察县| 当阳市| 崇礼县| 神农架林区| 绥阳县| 满洲里市| 乳源| 沂南县| 志丹县| 当涂县| 曲沃县| 濮阳县| 柞水县| 宣恩县| 大理市| 明溪县| 海晏县| 武川县|