分頁效果(二)

制作時間:12:30-14:00

重點:通過回調函數(shù)編寫切換內(nèi)容效果。

下面是實現(xiàn)的簡單效果。
(瀏覽器沒有截取gif功能,只能錄成WMV再轉gif了,有點麻煩隧饼。)

效果圖
  1. 通過之前編寫的 page() 方法中添加回調: callBack(nowNum,allNum); 把當前頁數(shù)和總頁數(shù)傳給回調函數(shù)。
  2. 編寫htmlh和css代碼静陈,作為紅色塊的容器燕雁。一開始設置成float為left屬性
<ul id="ul1"></ul>
#ul1{ width: 600px; height: 250px; }
#ul1 li{width: 100px; height: 100px; background-color: red; float:left; overflow: hidden; margin: 10px;}
  1. 手動設置json數(shù)據(jù)。這里沒有涉及通過ajax來調取服務器數(shù)據(jù)庫中數(shù)據(jù)鲸拥,所以只能手動編寫 json 數(shù)據(jù)拐格。
var json = {
        title : [
        '效果1',
        '效果2',
        '效果3',
        '效果4',
        '效果5',
        '效果6',
        '效果7',
        '效果8',
        '效果9',
        '效果10',
        '效果11',
        '效果12',
        '效果13',
        '效果14',
        '效果15',
        '效果16',
        '效果17',
        '效果18',
        '效果19',
        '效果20',
        '效果21',
        '效果22',
        '效果23',
        '效果24',
        '效果25',
        '效果26',
        '效果27',
        '效果28',
        '效果29',
        '效果30',
        '效果31',
        '效果32',
        '效果33',
        '效果34',
        '效果35',
        ]
    }
  1. 在調用 page() 方法中編寫回調函數(shù)。
    我設置了35條效果數(shù)據(jù)刑赶。每一頁顯示10條捏浊,但是第4頁就只有5條數(shù)據(jù)了。那么設置一個變量 num 為每一頁能夠顯示的數(shù)量撞叨。
var num= now*10 < json.title.length ? 10 : json.title.length-(now-1)*10;
  1. 獲取容器
var oUl = document.getElementById("ul1");
var aLi = document.getElementsByTagName("li");
  1. 判斷容器內(nèi)是否已經(jīng)有內(nèi)容了金踪。如果沒有則創(chuàng)建li元素。如果有了牵敷,則是改變里面的內(nèi)容胡岔。
    先假設還沒有內(nèi)容,那么要做的就是把數(shù)據(jù)的前10條加載到頁面上枷餐。
for (var i=0; i < num; i++){
        var oLi = document.createElement("li");
        oLi.innerHTML = json.title[(now-1)*10 + i];
        oUl.appendChild(oLi);
}

注意: 獲取json格式數(shù)據(jù)方法: json.title[...]

剛開始加載頁面時靶瘸,這里的 now (當前頁) 在第一頁,所以可以通過 json.title[(now-1)*10 + i] 提取從 json.title[0] ~ json.title[9] 這10條數(shù)據(jù)毛肋。

如果是第二頁怨咪,根據(jù)這行代碼,就能提取 json.title[10] ~ json.title[19]

第四頁時:因為 num = 5 所以根據(jù)這個 for 循環(huán)润匙,能提取 json.title[30]~json.title[34]` 這最后5條數(shù)據(jù)诗眨。

  1. 考慮到之后需要將這些li元素進行動畫,勢必會有位置變動趁桃,而且現(xiàn)在的li元素只是浮動元素辽话。之后不能對其進行位置改變肄鸽。

解決辦法:

1.先將他們各自的位置存儲到一個數(shù)組中
2.設置position屬性為absolute,再把數(shù)組中的位置值賦回去

for (var i=0; i < aLi.length; i++){
      arr.push([aLi[i].offsetLeft,aLi[i].offsetTop]);
}

for (var i=0; i < aLi.length; i++){
        aLi[i].style.position = "absolute";
        aLi[i].style.left = arr[i][0]+"px";
        aLi[i].style.top = arr[i][1]+"px";
}
  1. 接下來考慮ul容器中已經(jīng)有l(wèi)i元素的情況卫病。

(1) 將之前的li元素通過動畫消失掉

看效果圖油啤,消失的順序是從最后的元素開始的。

通過循環(huán)將元素的位置都挪到 left:200 , top:250 的地方蟀苛,并且使透明度變成0益咬,實現(xiàn)消失掉的效果。

設置一個變量 inum 存儲執(zhí)行動畫的元素索引帜平。

var inum = 10;
var timer = setInterval(function(){
              $(aLi).eq(inum).animate({ left:200 , top:250 , opacity:0});
              inum--;
},150);

很顯然是幽告,這是有錯誤的。inum不可能一直減下去裆甩。所以添加一個判斷:

if(inum==0){
        clearInterval(timer);
        ...
}
else{
        inum--;
}

(2) 將接下來要顯示的元素通過相反的動畫顯示出來

當之前的元素消失掉時顯示冗锁,那么代碼應該寫在 clearInterval(timer); 后面。

首先將ul容器中的元素替換掉:

for(var i=0; i < num ;i++){

        aLi[i].innerHTML = json.title[(now-1)*10 + i];

}

通過動畫顯示:

var timer2 = setInterval(function(){


    if(num == 0){

            clearInterval(timer2);

    }else{

            num--;
    }

    $(aLi).eq(num).animate({ left:arr[num][0], top:arr[num][1], opacity:1 });

},150);

分頁效果(二)結束

不積跬步無以至千里

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗤栓,一起剝皮案震驚了整個濱河市冻河,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌茉帅,老刑警劉巖叨叙,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異堪澎,居然都是意外死亡擂错,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門樱蛤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钮呀,“玉大人,你說我怎么就攤上這事昨凡∷祝” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵土匀,是天一觀的道長子房。 經(jīng)常有香客問我,道長就轧,這世上最難降的妖魔是什么证杭? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮妒御,結果婚禮上解愤,老公的妹妹穿的比我還像新娘。我一直安慰自己乎莉,他們只是感情好送讲,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布奸笤。 她就那樣靜靜地躺著,像睡著了一般哼鬓。 火紅的嫁衣襯著肌膚如雪监右。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天异希,我揣著相機與錄音健盒,去河邊找鬼。 笑死称簿,一個胖子當著我的面吹牛扣癣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播憨降,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼父虑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了授药?” 一聲冷哼從身側響起士嚎,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎烁焙,沒想到半個月后航邢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡骄蝇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年膳殷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片九火。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡赚窃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岔激,到底是詐尸還是另有隱情勒极,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布虑鼎,位于F島的核電站辱匿,受9級特大地震影響,放射性物質發(fā)生泄漏炫彩。R本人自食惡果不足惜匾七,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望江兢。 院中可真熱鬧昨忆,春花似錦、人聲如沸杉允。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拢驾,卻和暖如春奖磁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背独旷。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工署穗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留寥裂,地道東北人嵌洼。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像封恰,于是被迫代替她去往敵國和親麻养。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容