如何用jQuery實現(xiàn)一個簡單的3D輪播圖

demo1.jpg

寫功能的時候查了很多的demo。
各有好壞斥杜。
恰巧自己也是剛轉(zhuǎn)前端虱颗。索性摸索自己寫了一個。
項目要求的功能很多蔗喂、整理的時候把一些特殊功能都去掉了忘渔。
只留下輪播的效果。
效果如下:

4868e4a9-be3f-4d26-9b0d-34e999b3aabc.gif
  • 核心代碼

  .carousel .img{
    overflow: hidden;
    position: absolute;
    transition: width 0.4s,height 0.4s,top 0.4s,left 0.4s,z-index 0.4s;
  }

輪播的時候圖片移動和縮放缰儿、歸功于class---img
<div class="carousel">

<div class="img">
img/text等
</div>
<div class="img">
img/text等
</div>
</div>
盒子不一定非要用div畦粮、用ul、li啥的都一個樣。只要class設(shè)置成img就行锈玉。哪怕你懶得在這里設(shè)置爪飘、js里循環(huán)大盒子carousel去設(shè)置img也是一樣的义起。再或者carousel.li{...}設(shè)置拉背、總之只要給他動畫屬性就行了。都一個樣

之后默终、之后設(shè)定好各自圖片的位置class(img1/2/3/4/5)就好了
在對各自位置class進行重新分配的時候椅棺、會由class--img的動畫將其過渡到相應(yīng)的位置。


98d7bee6-adb7-4aed-83e0-65ac2d61579a.gif
我們的需求是展示3張圖片齐蔽、所以我只寫了3個實體的位置class

反正自己需要啥樣的排版两疚、自己寫幾個class就行了
.slide .img1{
width: 0px;
height: 0px;
top: 30%;
left: -50%;
z-index: 1;
}
.slide .img2{
width: 500px;
height: 200px;
top: 20%;
left: -20%;
z-index: 2;
}
.slide .img3{
width: 840px;
height: 340px;
top: 10%;
left: 15%;
z-index: 3;
}
.slide .img4{
width: 500px;
height: 200px;
top: 20%;
left: 60%;
z-index: 2;
}
.slide .img5{
width: 0px;
height: 0px;
top: 30%;
left: 110%;
z-index: 1;
}

接下來。就交由js進行了
  • 首先含滴。要給每個img添加相應(yīng)的唯一標(biāo)記诱渤、方便接下來獲取。
    imgNub = $(".carousel .img").size();
    //獲取輪播圖片數(shù)量
    for(i=0;i<imgNub;i++){
    $(".carousel .img:eq("+i+")").attr("imgId",i);
    }
    然后為相應(yīng)位置的img配置初始位置谈况。
    我展示出來了3張勺美。img2在左、img3在中間碑韵、img4在右側(cè)赡茸。img1/5隱藏掉了。(如果你先展示出來5張祝闻、就再加個img0占卧、img6。都一個樣)
    基本就是為了兼容各種數(shù)量的圖片联喘。給他們一個初始的位置华蜒。
    嗯、截取一段意思意思豁遭。
    if(imgNub>3&&imgNub<6){
    //img 1叭喜、2、3堤框、4域滥、(5)
    for(i=0;i<imgNub;i++){
    $(".carousel .img:eq("+i+")").addClass("img"+(i+1));
    }
    }

經(jīng)過以上半手動設(shè)置。每個img有了自己的位置class以及唯一的標(biāo)識id蜈抓。

接下來启绰、只要實現(xiàn)左右滑動就OK了。
//右滑動
function right(){
var fy = [];
//我們需要將原來的每個位置class沟使。依序放到數(shù)組里委可。
for(i=0;i<imgNub;i++){
//imgId最初設(shè)置的時候是0-X。取出相應(yīng)位置class的時候自然也是有序的
fy[i]=$(".carousel .img[imgId="+i+"]").attr("class");
}
for(i=0;i<imgNub;i++){
if(i==0){
//將最左邊圖移動到最右邊、實現(xiàn)輪播着倾。0->5
$(".carousel .img[imgId="+i+"]").attr("class",fy[imgNub-1]);
}else{
//其他依次后(左)移:1->0 2->1....
$(".carousel .img[imgId="+i+"]").attr("class",fy[i-1]);
}
}
imgClicked();
}
最后就是左右兩張圖的點擊事件拾酝、每次移動之后刷一遍就行:
$(".carousel .img").removeAttr("onclick");
$(".carousel .img2").attr("onclick","left()");
$(".carousel .img4").attr("onclick","right()");

最后、雖然我為了易懂把一些與效果無關(guān)的代碼去掉了卡者。但關(guān)于一些其他功能還是可以說兩句蒿囤。

比如文字:
你完全可以在每個img的box里寫一個p。然后隱藏掉崇决。
在每次刷新完之后賦值給需要展示的p材诽。(其實點擊跳轉(zhuǎn)的事件也是一個道理、把img3--也就是屏幕中央的那個img的跳轉(zhuǎn)單獨打開就行了)

$('.list_title').html($('.img3').find(".li_title").text())
$('.list_text').html($('.img3').find(".li_text").text())

自動輪播:
更沒說的~加個定時器就行恒傻。

如果你要是干活脸侥、只想要一段代碼。前端效果插件網(wǎng)站上一搜一大片盈厘、各種功能各種樣式睁枕。
但是我看的都是萬變不離其宗、所以我也沒弄太多的功能上來沸手。
這個demo是我覺得能講清楚原理最簡化的demo了外遇。

https://github.com/kiritoSong/CarouselDemo
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市罐氨,隨后出現(xiàn)的幾起案子臀规,更是在濱河造成了極大的恐慌,老刑警劉巖栅隐,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塔嬉,死亡現(xiàn)場離奇詭異,居然都是意外死亡租悄,警方通過查閱死者的電腦和手機谨究,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泣棋,“玉大人胶哲,你說我怎么就攤上這事√侗玻” “怎么了鸯屿?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長把敢。 經(jīng)常有香客問我寄摆,道長,這世上最難降的妖魔是什么修赞? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任婶恼,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勾邦。我一直安慰自己蚣录,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布眷篇。 她就那樣靜靜地躺著萎河,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铅歼。 梳的紋絲不亂的頭發(fā)上公壤,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天换可,我揣著相機與錄音椎椰,去河邊找鬼。 笑死沾鳄,一個胖子當(dāng)著我的面吹牛慨飘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播译荞,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瓤的,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吞歼?” 一聲冷哼從身側(cè)響起圈膏,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎篙骡,沒想到半個月后稽坤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡糯俗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年尿褪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片得湘。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡杖玲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出淘正,到底是詐尸還是另有隱情摆马,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布鸿吆,位于F島的核電站囤采,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏伞剑。R本人自食惡果不足惜斑唬,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恕刘,春花似錦缤谎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至含蓉,卻和暖如春频敛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背馅扣。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工斟赚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人差油。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓拗军,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蓄喇。 傳聞我的和親對象是個殘疾皇子发侵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,751評論 1 92
  • 各種純css圖標(biāo) CSS3可以實現(xiàn)很多漂亮的圖形妆偏,我收集了32種圖形刃鳄,在下面列出。直接用CSS3畫出這些圖形钱骂,要比...
    劍殘閱讀 9,541評論 0 8
  • 1. tab列表折疊效果 html: 能源系統(tǒng)事業(yè)部 崗位名稱: 工作地點 崗位名...
    lilyping閱讀 1,862評論 0 1
  • 一叔锐、關(guān)鍵詞:梳理、成長罐柳、深思 二掌腰、3月整體分析 3月重點核心目標(biāo)3個,完成1個张吉,有1個完成一半齿梁。練車,新的一年正式...
    Doris壹燕閱讀 234評論 0 3
  • “你陪我長大,我陪你到老” 01 我們曾經(jīng)篤信伦忠, 幸福就是逃離父母的樊籠省核,去看外面的大千世界; 終有一天昆码,我們得嘗...
    白格姨媽閱讀 208評論 3 0