国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery實現根據滾動條位置加載相應內容功能

2019-11-20 09:27:33
字體:
來源:轉載
供稿:網友

實現jQuery根據滾動條位置加載相應的內容:向下滾動時當內容區域滾動到可視窗口高度的一半時,加載動畫內容;向上滾動到相應的內容區域時也重新加載動畫內容!

1.實現思路:

先靜態布局好HTML結構,使用偽類:hover模擬動畫效果,再使用jQuery 控制動畫類名的切換來實現效果!主要判斷滾動的方向,以及相應方向上加載動畫的時機(即何時才加載動畫的判斷條件!關鍵點!)。

2.思維草稿圖:

向下滾動加載動畫判斷條件:(代碼中addClass()函數)

向上滾動加載動畫判斷條件:(代碼中addClass2()函數)

3.代碼實現:

HTML:

<div class="header"> 實現思路:先布局好靜態布局,再使用hover模擬動畫行為,再改為類名on等用js進行控制! </div> <div class="banner"> <h1>前端開發</h1> <p> Web前端開發是從網頁制作演變而來的,名稱上有很明顯的時代特征。在互聯網的演化進程中, 網頁制作是Web1.0時代的產物,那時網站的主要內容都是靜態的,用戶使用網站的行為也以 瀏覽為主。 </p> </div> <div class="con"> <div class="con_l"><img src="images/1.jpg" alt="" /></div> <div class="con_2"><img src="images/2.jpg" alt="" /></div> </div> <div class="news">news</div> <div class="footer">footer</div>

CSS:

*{margin:0px;padding:0px;}//粗暴地清除默認邊距body{ font-family:"Arial Microsoft Yahei"; font-size:16px; font-weight:bold;}.header{ width:100%;height:500px; background-color: #10E668;}.banner{ width:100%;height:600px; background:#F7CF3B; text-align: center; margin:30px auto; overflow: hidden;}.banner h1{ font-size:30px; padding:50px 0; position:relative; top:400px; transition:all 0.3s 0.3s linear;}.banner p{ font-size:18px; width:80%; margin:30px auto; line-height: 1.8em; text-align: left; text-indent:2em; position:relative; top:400px; transition:all 0.5s 0.5s linear;}//動畫類.banner.on h1,.banner.on p{ top:0px;}.con{ width:80%;height:720px; background:#508E5A; margin:20px auto; overflow: hidden;}.con img{ width:400px;height:auto;}.con_l{ float: left; position:relative; left:-400px; transition:all 0.3s 0.3s linear;}.con_2{ float: right; position:relative; right:-400px; transition:all 0.3s 0.3s linear;}//動畫類.con.on .con_l{ left:0;}.con.on .con_2{ right:0;}.news{ width:100%;height:600px; background:#CA3400;}.footer{ width:100%;height:600px; background-color: #ccc;}

jQuery:

$(function(){ /*version 0.1.0 函數封裝*/ //向下滾動時 function addClass(ele){ var winH=$(window).height()*0.5;//可視窗口的高度的一半,更改0.5可以調整滾動到底部、中部、頂部時候開始加載 var top=$(window).scrollTop();//可視窗口的滾動高度 var ele_t=$(ele).offset().top;//內容區的top var ele_h=$(ele).height();//內容區的高 //判斷條件,看草稿圖1! if(top<ele_t-winH){ $(ele).removeClass('on'); }else if((top>ele_t-winH)&&(top<ele_t+ele_h)){ $(ele).addClass('on'); }else{ $(ele).removeClass('on'); } } //向上滾動時,看草稿圖2! function addClass2(ele){ var winH=$(window).height()*0.5;//更改0.5可以調整滾動到底部、中部、頂部時候開始加載 var top=$(window).scrollTop();//可視窗口的滾動高度 var ele_t=$(ele).offset().top;//內容區的top var ele_h=$(ele).height();//內容區的高 //判斷條件 if(top>ele_t+ele_h){ $(ele).removeClass('on'); }else if((top<ele_t+ele_h)&&(top>ele_t-winH*2)){ $(ele).addClass('on'); }else{ $(ele).removeClass('on'); } } //獲取前一次的滾動高度(這里是第一次) var firstTop=$(window).scrollTop(); $(window).scroll(function(){ //每次滾動重新獲取滾動高度 var lastTop=$(this).scrollTop(); //后一次滾動高度大于前一次滾動高,說明向下滾動,否則想上滾動! if(lastTop>firstTop){ //加載對應的內容區域 addClass('.banner'); addClass('.con'); }else{ addClass2('.banner'); addClass2('.con'); } //每次都將后一次的滾動高度賦值給前一次的滾動高度 firstTop=lastTop; });});

4.總結:

這種效果用于模擬滾動加載動畫內容,重難點在于判斷滾動的方向、相應滾動方向上加載動畫時候的判斷條件,感覺邏輯還是有待提升的!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 介休市| 镇宁| 隆尧县| 东丽区| 盈江县| 马鞍山市| 辉县市| 正阳县| 芒康县| 江北区| 中宁县| 屯门区| 江孜县| 宁国市| 石楼县| 天全县| 大石桥市| 新巴尔虎左旗| 宜宾市| 东至县| 安宁市| 焉耆| 东明县| 辛集市| 金山区| 吴川市| 嘉峪关市| 唐山市| 隆化县| 河北省| 遵义县| 兰考县| 静安区| 酉阳| 昭平县| 闸北区| 苗栗县| 汕头市| 黑水县| 丹棱县| 微山县|