溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jQuery中怎么實現(xiàn)視差滾動

發(fā)布時間:2021-08-09 14:59:52 來源:億速云 閱讀:135 作者:Leah 欄目:web開發(fā)

本篇文章給大家分享的是有關(guān)jQuery中怎么實現(xiàn)視差滾動,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1 – 創(chuàng)建基本的html

首先創(chuàng)建最基本的html文件架構(gòu) ,這個就不多說了,代碼如下:

<div id="header">             <h2 id="logo">Clouds demo</h2>          <ul id="menu">              <li><a href="#box1" class="link">Home</a></li>              <li><a href="#box2" class="link">Box 2</a></li>              <li><a href="#box3" class="link">Box 3</a></li>              <li><a href="#box4" class="link">Box 4</a></li>        </ul>      </div><!-- end header -->      <div id="wrapper">          <ul id="mask">              <li id="box1" class="box">                  <a name="box1"></a>                  <div class="content"><div class="inner">主頁</div></div>              </li><!-- end box1 -->              <li id="box2" class="box">                  <a name="box2"></a>                  <div class="content"><div class="inner">Box 2</div></div>              </li><!-- end box2 -->              <li id="box3" class="box">                  <a name="box3"></a>                  <div class="content"><div class="inner">Box 3</div></div>              </li><!-- end box3 -->              <li id="box4" class="box">                  <a name="box4"></a>                  <div class="content"><div class="inner">Box 4</div></div>              </li><!-- end box4 -->          </ul><!-- end mask -->      </div><!-- end wrapper -->

定義一個header的ID標(biāo)記,然后下面有個四個導(dǎo)航,用于切換的

2 &ndash; 一些CSS代碼

創(chuàng)建一個新的CSS文件 ,把它定義成layout.css

/*** Style Definitions ***/  html                { background:#67b2ff; font-family:Arial, Helvetica, sans-serif; }       /*** Header ***/  h1#logo                { background:url(../images/Logo.png) top left no-repeat; height:62px; width:481px;                           text-indent:-9999px; position:absolute; top:10px; left:10px; }       #menu                { float:right; position:absolute; top:20px; right:10px; z-index:10; }       #menu a                { background:#FFF; color:#67b2ff; border:#AAA 3px solid;  text-decoration:none; padding:10px;                           margin-right:10px; border-radius:10px; -moz-border-radius:10px; -webkit-border-radius:10px;}       #menu a:hover        { background:#67b2ff; color:#FFF; border:#FFF 3px solid; text-decoration:none; padding:10px;                           margin-right:10px; border-radius:10px; -moz-border-radius:10px; -webkit-border-radius:10px;}       #menu li            { float:left; }       /*** Body Content ***/  #wrapper    { width:100%; height:100%; position:absolute; top:0; left:0; overflow:hidden; }       #mask        { width:400%; height:100%; }       .box        { width:25%; height:100%; float:left; }       .content    { width:960px; height:400px; top:20%; margin: 0 auto; position:relative; background:rgba(255,255,255, 0.3);                   border-radius:35px; -moz-border-radius:35px; -webkit-border-radius:35px; }       .inner        { width:920px; height:360px; background:rgba(255, 255, 255, 0.3); border-radius:30px; -moz-border-radius:30px;                       -webkit-border-radius:30px; margin:5px; padding:15px; top:5px; position:relative; }

這些CSS代碼相信你能看到吧,我簡單解釋一下 ,我們把需要滾動的區(qū)域放在id為wrapper的DIV內(nèi),無論他在那個地方一定要保證他滾動的固定性。id為mask的標(biāo)記做為具體的滑動實現(xiàn),他的寬度是100%,因為這里有4個區(qū)域需要全屏滾動,所以他的寬度設(shè)置為400。

我們想讓每個方形盒子在屏幕的中間,所以給每個方形盒子定義一個li元素哦。然后定義CSS3 border-radius圓角和rgba背景顏色來創(chuàng)建一個半透明的漂亮邊框圓角效果,到這里為止創(chuàng)建的效果如下所示。

jQuery中怎么實現(xiàn)視差滾動

第3步 - 使用jQuery來創(chuàng)建效果

上面基本的網(wǎng)站架構(gòu)做好之后并沒有使用javascript,現(xiàn)在我們開始使用jquery創(chuàng)建有趣的滾動效果,我們使用ScrollTo的jquery插件來達(dá)到我們想要的效果,首先引入jquery文件。

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>  <script type="text/javascript" src="http://flesler-plugins.googlecode.com/files/jquery.scrollTo-1.4.2-min.js"></script>

然后打開這個文件看到最基本的jquery語法。

$(document).ready(function() {            $('a.link').click(function () {                $('#wrapper').scrollTo($(this).attr('href'), 800);              return false;            });        });

就這么簡單,看看這個代碼做個什么。

1,確保整個頁面加載之前運行腳本。

2 ,增加了點擊監(jiān)聽所有<a>標(biāo)簽。在這種情況下,這是我們的導(dǎo)航菜單中的所有鏈接,但我們可以添加“鏈接”類行為的任何頁面上的鏈接。然后,我們指定一個動作,點 擊檢測功能。

3 呼吁#包裝的div的scrollTo插件,并傳遞給它的目的地,并以毫秒為單位的時間來完成動畫。

4取消點擊瀏覽器的默認(rèn)行為。

現(xiàn)在我們知道如何滾動一個特定的div的內(nèi)容,讓我們在頭部背景增加自己的DIV內(nèi)容

<div id="cloud1" class="clouds"> <div id="clouds-small"></div> </div><!-- end clouds --> <div id="cloud2" class="clouds"> <div id="clouds-big"></div> </div><!-- end clouds -->

增加CSS效果代碼

/*** Clouds ***/ .clouds        { width:100%; height:262px; overflow:hidden; }  #clouds-small    { width:3000px; height:100%; background:url(../images/bg-clouds-small.png) repeat-x;}  #cloud2        { position:relative; top:-262px; }  #clouds-big    { width:4000px; height:100%; background:url(../images/bg-clouds-big.png) repeat-x;}

上面的代碼,我增加了尺寸和背景圖片的div,全屏寬度,以適應(yīng)滾動和定位,效果如下圖

jQuery中怎么實現(xiàn)視差滾動

第4步 - 完成所有的動作

我們幾乎完成了!之前,我使用了scrollTo插件來進(jìn)行移動,我需要寫一個小的輔助功能,將告訴它移動定位到那個DIV。將有4點,我們需要設(shè)置,

function setPosition(check, div, p1, p2, p3, p4) {       if(check==='#box1')           {               $(div).scrollTo(p1, 800);           }       else if(check==='#box2')           {               $(div).scrollTo(p2, 800);           }       else if(check==='#box3')           {               $(div).scrollTo(p3, 800);           }       else           {               $(div).scrollTo(p4, 800);           }   };
$(document).ready(function() {         $('a.link').click(function () {             $('#wrapper').scrollTo($(this).attr('href'), 800);           //add this line           setPosition($(this).attr('href'), '#cloud1', '0px', '400px', '800px', '1200px')           //end add this           return false;         });     });

到這里每個云將移動400個像素,看他們之間的差異像素大小

$(document).ready(function() {            $('a.link').click(function () {            $('#wrapper').scrollTo($(this).attr('href'), 800);          setPosition($(this).attr('href'), '#cloud1', '0px', '400px', '800px', '1200px')          //add this line          setPosition($(this).attr('href'), '#cloud2', '0px', '800px', '1600px', '2400px')          //end add this          return false;        });    });

添加后續(xù)的云div,注意這里的div設(shè)置成800個像素了,這點需要大家注意

$(document).ready(function() {         $('a.link').click(function () {             $('#wrapper').scrollTo($(this).attr('href'), 800);           setPosition($(this).attr('href'), '#cloud1', '0px', '400px', '800px', '1200px')           setPosition($(this).attr('href'), '#cloud2', '0px', '800px', '1600px', '2400px')           //add this           $('a.link').removeClass('selected');             $(this).addClass('selected');           //end add this           return false;         });     });
#menu a.selected {   background:#AAA;   color:#FFF;   border:#67b2ff 3px solid;   text-decoration:none;   padding:10px;  margin-right:10px;   border-radius:10px;   -moz-border-radius:10px;   -webkit-border-radius:10px;  }

以上就是jQuery中怎么實現(xiàn)視差滾動,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI