自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

jQuery實現(xiàn)的視差滾動教程

開發(fā) 前端
作為今年網(wǎng)頁設計的熱點趨勢,越來越多的網(wǎng)站應用了這項技術?,F(xiàn)在越來越多的網(wǎng)站采用視差水平滾動來創(chuàng)建絢麗的效果,其實這樣的效果使用jquery實現(xiàn)的。

視差滾動(Parallax Scrolling)是指讓多層背景以不同的速度移動,形成立體的運動效果,帶來非常出色的視覺體驗。作為今年網(wǎng)頁設計的熱點趨勢,越來越多的網(wǎng)站應用了這項技術。現(xiàn)在越來越多的網(wǎng)站采用視差水平滾動來創(chuàng)建絢麗的效果,其實這樣的效果使用jquery實現(xiàn)的,今天就給大家分享一下這樣的效果實現(xiàn)原理,下一次在做網(wǎng)站的時候你就可以使用這樣的效果作出絢麗的效果

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

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

  1. <div id="header"> 
  2.             <h1 id="logo">Clouds demo</h1> 
  3.          <ul id="menu"> 
  4.              <li><a href="#box1" class="link">Home</a></li> 
  5.              <li><a href="#box2" class="link">Box 2</a></li> 
  6.              <li><a href="#box3" class="link">Box 3</a></li> 
  7.              <li><a href="#box4" class="link">Box 4</a></li> 
  8.        </ul> 
  9.      </div><!-- end header --> 
  10.      <div id="wrapper"> 
  11.          <ul id="mask"> 
  12.              <li id="box1" class="box"> 
  13.                  <a name="box1"></a> 
  14.                  <div class="content"><div class="inner">主頁</div></div> 
  15.              </li><!-- end box1 --> 
  16.              <li id="box2" class="box"> 
  17.                  <a name="box2"></a> 
  18.                  <div class="content"><div class="inner">Box 2</div></div> 
  19.              </li><!-- end box2 --> 
  20.              <li id="box3" class="box"> 
  21.                  <a name="box3"></a> 
  22.                  <div class="content"><div class="inner">Box 3</div></div> 
  23.              </li><!-- end box3 --> 
  24.              <li id="box4" class="box"> 
  25.                  <a name="box4"></a> 
  26.                  <div class="content"><div class="inner">Box 4</div></div> 
  27.              </li><!-- end box4 --> 
  28.          </ul><!-- end mask --> 
  29.      </div><!-- end wrapper --> 

定義一個header的ID標記,然后下面有個四個導航,用于切換的

2 – 一些CSS代碼

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

  1. /*** Style Definitions ***/ 
  2.  html                { background:#67b2fffont-family:ArialHelveticasans-serif; }  
  3.     
  4.  /*** Header ***/ 
  5.  h1#logo                { background:url(../images/Logo.png) top left no-repeatheight:62pxwidth:481px;  
  6.                          text-indent:-9999pxposition:absolute; top:10px; left:10px; }  
  7.     
  8.  #menu                { float:rightposition:absolute; top:20px; right:10pxz-index:10; }  
  9.     
  10.  #menu a                { background:#FFFcolor:#67b2ffborder:#AAA 3px solid;  text-decoration:nonepadding:10px;  
  11.                          margin-right:10px; border-radius:10px; -moz-border-radius:10px; -webkit-border-radius:10px;}  
  12.     
  13.  #menu a:hover        { background:#67b2ffcolor:#FFFborder:#FFF 3px solidtext-decoration:nonepadding:10px;  
  14.                          margin-right:10px; border-radius:10px; -moz-border-radius:10px; -webkit-border-radius:10px;}  
  15.     
  16.  #menu li            { float:left; }  
  17.     
  18.  /*** Body Content ***/ 
  19.  #wrapper    { width:100%height:100%position:absolute; top:0; left:0overflow:hidden; }  
  20.     
  21.  #mask        { width:400%height:100%; }  
  22.     
  23.  .box        { width:25%height:100%float:left; }  
  24.     
  25.  .content    { width:960pxheight:400px; top:20%margin0 autoposition:relativebackground:rgba(255,255,2550.3);  
  26.                  border-radius:35px; -moz-border-radius:35px; -webkit-border-radius:35px; }  
  27.     
  28.  .inner        { width:920pxheight:360pxbackground:rgba(2552552550.3); border-radius:30px; -moz-border-radius:30px;  
  29.                      -webkit-border-radius:30pxmargin:5pxpadding:15px; top:5pxposition:relative; } 

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

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

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

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

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

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

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

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

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

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

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

4取消點擊瀏覽器的默認行為。

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

  1. <div id="cloud1" class="clouds"> 
  2. <div id="clouds-small"></div> 
  3. </div><!-- end clouds --> 
  4. <div id="cloud2" class="clouds"> 
  5. <div id="clouds-big"></div> 
  6. </div><!-- end clouds --> 

增加CSS效果代碼

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

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

第4步 - 完成所有的動作

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

  1. function setPosition(check, div, p1, p2, p3, p4) {  
  2.      if(check==='#box1')  
  3.          {  
  4.              $(div).scrollTo(p1, 800);  
  5.          }  
  6.      else if(check==='#box2')  
  7.          {  
  8.              $(div).scrollTo(p2, 800);  
  9.          }  
  10.      else if(check==='#box3')  
  11.          {  
  12.              $(div).scrollTo(p3, 800);  
  13.          }  
  14.      else  
  15.          {  
  16.              $(div).scrollTo(p4, 800);  
  17.          }  
  18.  }; 
  1. $(document).ready(function() {    
  2.      $('a.link').click(function () {    
  3.          $('#wrapper').scrollTo($(this).attr('href'), 800);  
  4.          //add this line  
  5.          setPosition($(this).attr('href'), '#cloud1''0px''400px''800px''1200px')  
  6.          //end add this  
  7.          return false;    
  8.      });    
  9.  }); 

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

  1. $(document).ready(function() {    
  2.         $('a.link').click(function () {    
  3.         $('#wrapper').scrollTo($(this).attr('href'), 800);  
  4.         setPosition($(this).attr('href'), '#cloud1''0px''400px''800px''1200px')  
  5.         //add this line  
  6.         setPosition($(this).attr('href'), '#cloud2''0px''800px''1600px''2400px')  
  7.         //end add this  
  8.         return false;    
  9.     });    
  10. }); 

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

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

這個是css邊框圓角效果 ,下面是演示效果。 Demo

原文鏈接:http://www.cnblogs.com/web8cn/archive/2012/08/09/effect_using_jquery.html

【編輯推薦】

責任編輯:張偉 來源: 創(chuàng)想中國的博客
相關推薦

2014-12-31 13:49:34

ScrollViewScroll ViewParallax

2012-09-27 09:33:30

WebJSjQuery

2011-09-02 10:14:10

JQuery滾動Xslider

2012-05-10 14:02:46

jQuery

2011-09-02 10:03:40

jQuery滾動圖片

2011-09-02 09:49:29

JQuery圖片滾動

2013-04-02 13:04:07

ListView平滑滾

2022-04-12 07:37:08

CSS滾動視差效果前端

2011-09-01 13:17:46

JQuery滾動

2012-05-10 10:36:53

jQuery

2011-05-11 15:10:21

jQueryCSS導航欄

2023-11-22 07:47:34

2012-05-28 13:38:41

HTML5

2009-06-24 10:58:21

jQuery插件教程

2012-06-23 20:06:21

jQuery

2015-09-09 11:05:52

3d視差引導頁

2011-09-02 10:41:51

2011-07-20 13:37:14

2021-08-16 14:45:38

鴻蒙HarmonyOS應用

2013-12-02 14:13:54

jQueryUI
點贊
收藏

51CTO技術棧公眾號