課程
/前端開發(fā)
/JavaScript
/JS+CSS3實(shí)現(xiàn)帶預(yù)覽圖幻燈片效果
好想知道m(xù)ain-i_active怎么加不進(jìn)去……,Uncaught TypeError:Cannot read property 'className' of null
2017-07-26
源自:JS+CSS3實(shí)現(xiàn)帶預(yù)覽圖幻燈片效果 3-1
正在回答
main.className?+=?' main-i_active';????
main.className?+=?
' main-i_active'
;
????
ctrl.className?+=?' ctrl-i_active';
ctrl.className?+=?
' ctrl-i_active'
記得"main-i_active"前面加一個(gè)空格 這樣添加類的時(shí)候才不會(huì)和之前的類"main-i"連在已簽約
//1.數(shù)據(jù)定義(實(shí)際生產(chǎn)環(huán)境中,應(yīng)由后臺(tái)給出) var?data?=?[ {img:1,h1:'Creative',h2:'DUTE'}, {img:2,h1:'Friendly',h2:'DEVIL'}, {img:3,h1:'Tranquilent',h2:'COMPATRIOT'}, {img:4,h1:'Insecure',h2:'HUSSLER'}, {img:5,h1:'Loving',h2:'REBEL'}, {img:6,h1:'Passionate',h2:'SEEKER'}, {img:7,h1:'Crazy',h2:'FRIEND'} ] //2.通用函數(shù) var?g?=?function(id){ if(id.substr(0,1)=='.'){ return?document.getElementsByClassName(id.substr(1)) } return?document.getElementById(id) } //3.添加幻燈片的操作(所有幻燈片&對應(yīng)的按鈕) function?addSliders(){ //3.1獲取模板 var?tpl_main?=?g('template_main').innerHTML.replace(/^\s*/,'').replace(/\s*$/,''); var?tpl_ctrl?=?g('template_ctrl').innerHTML.replace(/^\s*/,'').replace(/\s*$/,''); //3.2定義最終輸出HTML的變量 var?out_main?=?[]; var?out_ctrl?=?[]; //3.3遍歷所有數(shù)據(jù),構(gòu)建最終輸出的HTML for(i?in?data){ var?_html_main?=?tpl_main.replace(/{{index}}/g,data[i].img).replace(/{{h2}}/g,data[i].h1).replace(/{{h3}}/g,data[i].h2) var?_html_ctrl?=?tpl_ctrl.replace(/{{index}}/g,data[i].img); out_main.push(_html_main); out_ctrl.push(_html_ctrl); } //3.4把html回寫到對應(yīng)的DOM里面 g('template_main').innerHTML?=?out_main.join(''); g('template_ctrl').innerHTML?=?out_ctrl.join('') } //5.幻燈片切換 function?switchSlider(n){ //5.1獲得要展現(xiàn)的幻燈片&控制按鈕DOM var?main?=?g('main_'+n); var?ctrl?=?g('ctrl_'+n); //5.2獲得所有的幻燈片以及控制按鈕 var?clear_main?=?g('.main-i'); var?clear_ctrl?=?g('.ctrl-i'); //5.3清除active樣式; for?(i?=?0;?i?<?clear_main.length;?i++)?{ clear_ctrl[i].className?=?clear_ctrl[i].className.replace('ctrl-i_active',''); clear_main[i].className?=?clear_main[i].className.replace('main-i_active',''); } main.className?+=?'main-i_active'; ctrl.className?+=?'ctrl-i_active'; } //4.定義何時(shí)處理幻燈片輸出 window.onload?=?function(){ addSliders(); switchSlider(); }
舉報(bào)
同樣的幻燈片,不一樣的切換,學(xué)會(huì)實(shí)現(xiàn)思路,操作很簡單
1 回答.main-i_active和.ctrl-i_active
4 回答main.ClassName += 'main-i_active'
2 回答為什么點(diǎn)擊按鈕后會(huì)給每一個(gè)main-i自動(dòng)添加一個(gè)main-i_active ?
1 回答//5.4 為當(dāng)前控制按鈕和幻燈片附加樣式 main.className += 'main-i_active';
5 回答為什么要設(shè)置right:50%,而后又在main-i_active里設(shè)置了right:0呢?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-06-26
main.className?+=?
' main-i_active'
;
????
ctrl.className?+=?
' ctrl-i_active'
;
記得"main-i_active"前面加一個(gè)空格 這樣添加類的時(shí)候才不會(huì)和之前的類"main-i"連在已簽約
2017-07-26