qq_默默向上游_0
2016-07-26 00:10
@charset "utf-8"; /* CSS Document */ *{padding:0; margin:0;} body{ padding:50px 0; background-color:#fff; font-size:14px; font-family:'Avenir Next'; color:#555; -webkit-font-smoothing: antialiased;} .slider .main,.slider,.main .main-i{ width:100%; height:400px; position:relative;} .slider .main{ overflow:hidden;} .slider .main .main-i{} .slider .main .main-i img{ width:100%; position:absolute; top:50%; left:0; z-index:1;} .slider .main .main-i .caption{ position:absolute; right:50%; top:30%; z-index:9;} .main-i .caption h2{ font-size:40px; line-height:50px; color:#B5B5B5; text-align:right;} .main-i .caption h3{font-size:70px; line-height:70px; color:#000000; font-family:'Open Sans Condense'; text-align:right;} /*控制按钮区域*/ .slider .ctrl{ width:100%; height:13px; line-height:13px; text-align:center; position:absolute; left:0; bottom:-13px;} .slider .ctrl .ctrl-i{ display:inline-block; width:150px; height:13px; background-color:#666; box-shadow:0 1px 1px rgba(0,0,0,.3); position:relative; margin-left:1px;} .slider .ctrl .ctrl-i img{width:100%; position:absolute; left:0; bottom:50px; z-index:1; opacity:0; -webkit-transition:all .2s;} .slider .ctrl .ctrl-i:hover{ background-color:#f0f0f0;} .slider .ctrl .ctrl-i:hover img{bottom:13px;opacity:1; -webkit-box-reflect:below 0px -webkit-gradient(linear,left top,left bottom,from(transparent), color-stop(50%,transparent),to(rgba(255,255,255,.3))); } .slider .ctrl .ctrl-i_active:hover, .slider .ctrl .ctrl-i_active{ background-color:#000;} .slider .ctrl .ctrl-i_active:hover img{ opacity:0;} /*幻灯片切换的样式*/ .slider .main .main-i{ opacity:0; position:absolute; right:50%; top:0;-webkit-transition:all .5s;} .slider .main .main-i h2{ margin-right:45px;} .slider .main .main-i h3{ margin-right:-45px;} .slider .main .main-i h2,.slider .main .main-i h3{ opacity:0;transition:all 1s .8s; } .slider .main .main-i_active{ opacity:1;right:0;} .main-i_active h2,.main-i_active h3{ margin-right:0px; opacity:1;} .main .main-i .caption{ margin-right:13%;} 脚本 // JavaScript Document var data=[ //1.数据定义,实际应该后台给出 {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.substr(0,1)=='.'){ return document.getElementsByClassName(id.substr(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(''); } //5 幻灯片切换 function switchSlider(n){ //5-1获得要展现的幻灯片&控制按钮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_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'; } //6动态调整图片的margin-top以使其垂直居中 function movePictures(){ var pictures=g('.picture'); for(i=0;i<pictures.length;i++){ pictures[i].style.marginTop=(-1*pictures[i].clientHeight/2)+'px' } } //4.定义何时处理幻灯片输出 window.onload=function(){ addSliders(); switchSlider(1); setTimeout(function(){ movePictures(); },100) }
var main=g('.main_'+n);
var ctrl=g('.ctrl_'+n);
81,82行调用的是id,前面没有点,
var main=g('main_'+n);
var ctrl=g('ctrl_'+n);
这样就对了哈
JS+CSS3实现带预览图幻灯片效果
53757 学习 · 265 问题
相似问题