Ajax 板


LINE

※ 引述《Tethys (花芯)》之銘言: : 這是一個可以把圖片切換左右滑動的原始碼 : 來源: : http://www.veryhuo.com/a/view/43357.html : $(function(){ 下面這個區塊只有在一開始會執行,也就是初始化的動作 ============================================================== : var i=0; //指定變數「i」的初始值為零 : var li = $(".lxfscroll li"); //指定li是選擇html中class="lxfscroll"的li元素 : var n=li.length-1; //指定變數「n」等於li的數量-1 (假設li有六個就是五) : var speed = 300; //指定速度為300 : li.not(":first").css({left:"400px"}); // 如果不是li中的第一項,指定往右滑動400px : li.eq(n).css({left:"-400px"}); //針對在li中的「n」項(假設是5) 往左滑400px 上面兩行,應該不能說是滑動,因為他只是單純改CSS,是直接把那個物件放在那個位置 並沒有做任何補間動畫。 : //因為 .eq是從零開始,所以其實是指第六項 : //所以滑到第六張圖的時候就往左滑400px 你上面說的這句,判斷他的邏輯不存在於上面的程式碼中,是在之後的部分。 ============================================================== 這邊是按下"下一個"的時候會執行的東西 ============================================================== : lxfNext=function (){ //指定一個功能"lxfNext" : if (!li.is(":animated")) { //"如果li正在動畫中"是錯的即為true,就執行下面 : (這裡的驚嘆號是表示not?) : if (i>=n){i=0;li.eq(n).animate({left:"-400px"},speed); : //如果「i」大於或等於「n」,執行{將「i」歸零,指定li中的第「n」項產生動畫 : 往右滑400px} : //然後後面{執行}的也就是指滑到第六張圖片就會往左滑400px,表示移到上一張圖片? 應該不能說是往左滑400px,他的意思是叫他滑到left = -400px的位置 如果要說"往左滑 400px"應該要寫作"-=400px"才對,下面也一樣 : li.eq(i).animate({left:"0px"},speed); : //li中的第0項(就是第一張圖片)產生動畫:往最初位置移動 : else{i++;li.eq(i-1).animate({left:"-400px"},speed); : //否則「i」累加數值;指定「i-1」之項目產生動畫:往左滑400px : //意指「i(零)會持續加一」直到大於或等於「n(五)」 : //li中的第(i-1項,可能是1-1,2-1..)會產生動畫往左滑400px : //表示滑到第五張之前都是往左滑的 : li.eq(i).animate({left:"0px"},speed);}; : // li中的第「i」項(原本是零)產生動畫:返回原位 : // 這裡不太懂>"< 「i」會是哪個值? 因為i=0只被初始化一次,然而按鈕不只被執行一次,所以每次按下按鈕都會變更他的值 : li.not("eq(i)").css({left:"400px"}); : // li若不是第「i」值時執行動畫:往右滑400px : $("i").text(i+1); : }else{}; : }; ========================================================================== 這邊是按下"上一個"的時候會執行的東西 ========================================================================== : lxfLast=function (){ : if (!li.is(":animated")) { : if (i<=0){i=n;li.eq(0).animate({left:"400px"},speed); : li.eq(n).animate({left:"0px"},speed); : }else{i--;li.eq(i+1).animate({left:"400px"},speed); : li.eq(i).animate({left:"0px"},speed);} : li.not("eq(i)").css({left:"-400px"}); : $("i").text(i+1); : }; : }; : }); : 想請教大家我這樣的解釋對嗎?? : 新手學習中,請多多指教,謝謝~~!! ========================================================================== 這個範例只是把不想顯示的東西直接放到你看不到的地方而已 等到要用的時候再讓他滑進來,假設有六張圖 一開始應該是 1 23456(都在同一個位置上) 接著每按一次就把圖片滑到中間,再按一次就把他滑到左邊看不到的地方這樣 在看不到的區域裡面就都是疊在一起的了。 我想原po要注意程式碼中各個片段的邏輯性,以及各個片段的執行時機為何 這樣才有辦法看得懂~ --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.176.140.42
1F:→ danny8376:最初位置是 6 1 2345 09/23 20:43
2F:→ danny8376:是說 else{i++;li.eq(i-1). ~~~ ,speed); 09/23 20:47
3F:→ danny8376:這行要不就寫成 else{li.eq(i++). ~~~ ,speed); 09/23 20:48
4F:→ danny8376:不然就 else{li.eq(i). ~~~ ,speed);i++; 09/23 20:48
5F:→ danny8376:作者先累加之後再去-1來用真是奇妙www 09/23 20:48
6F:→ danny8376:順便提一下 這裡面有個有小問題的地方 09/23 21:01
7F:→ danny8376:li.not("eq(i)").css({left:" [+/-] 400px"}); 09/23 21:01
8F:→ danny8376:應該改成 li.not(":eq(i)").css({ ~~~ 09/23 21:02
9F:→ danny8376:前者在舊版本jQuery中會嘗試解析 09/23 21:02
10F:→ danny8376:而新版jQuery則比較嚴謹要打完整才行 09/23 21:02
11F:→ danny8376:話說原本看元PO好像不是太懂這程式的作法 09/23 21:03
12F:→ danny8376:所以畫圖想解釋 結果畫到一半就想到會不會有人已經回了 09/23 21:04
13F:→ danny8376:結果還真的有人回了XDD 09/23 21:04
14F:→ danny8376:看了看... 回給原PO看的 這裡面的i就是index 09/23 21:07
15F:→ danny8376:簡單來說這裡的i就是目前顯示的是第幾個圖片 09/23 21:07
16F:→ danny8376:(index從0開始的就是了) 這樣應該會好懂一些 09/23 21:08
17F:推 Tethys:大感激>"< 實在太感謝了! 不過我覺得這個寫得好複雜 09/24 17:44
18F:→ Tethys:可能我要再熟一點才會比較了解 話說用算式表示邏輯真難.QQ 09/24 17:44
19F:→ Tethys:也謝謝danny熱心的解說~~感動QQ 09/24 17:44







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP