HeyShinner
2016-02-14 13:42
<body> <div class="slider"> <!--0.模板生成--> <div class="main" id="template_main"> <div class="main-i" id="main_{{index}}"> <div class="caption"> <h2>{{h2}}</h2> <h3>{{h3}}</h3> </div> <img src="images/{{index}}.jpg" /> </div> </div> <div class="ctrl" id="template_ctrl"> <a class="ctrl-i" id="ctrl_{{index}}" href="javascript:switchSlider({{index}});"><img src="images/{{index}}.jpg" /></a> </div> </div> <script type="text/javascript"> //1. var data=[ {img:1,h1:"Creative",h2:"DUET"}, {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.通用函数 var g=function(id){ if(id.substring(0,1)=="."){ return document.getElementsByClassName(id.substring(1)); } return document.getElementById(id); } //3.添加幻灯片的操作(所有的幻灯片&控制按钮) 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遍历所有数据,构建最终输出的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回写到DOM中 g("template_main").innerHTML=out_main.join(""); g("template_ctrl").innerHTML=out_ctrl.join(""); }//数组才允许for in操作 } //4.定义何时处理幻灯片输出 window.onload=function(){ addSliders(); switchSlider(); } //5.幻灯片切换 function switchSlider(n){ //5.1获得要展现的幻灯片及控制按钮 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(var i=0;i<clear_ctrl.length;i++){ clear_main[i].className=clear_main[i].className.replace("main-i_active",""); clear_ctrl[i].className=clear_ctrl[i].className.replace("ctrl-i_active",""); } //5.4为当前的幻灯片及按钮添加样式 main.className+="main-i_active"; ctrl.className+="ctrl-i_active"; } </script> </body>
很想知道你的那个 cannot read property of null怎么解决的
你获取了一段dom 那么这段dom是包含了这段结构完整的内容 。 赋值给变量后 当然还能对变量中含有的class进行编辑了。
这是我个人的认识 , 如有不对请指出。
JS+CSS3实现带预览图幻灯片效果
53757 学习 · 265 问题
相似问题