关于源码上传
老师可否把源码传上来
老师可否把源码传上来
2016-03-11
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{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 .main-i,.slider .main,.slider{width:100%;height:400px;position:relative;}
/*幻灯片区域*/
.slider .main{overflow: hidden;}
/*每一个幻灯片的样式*/
.slider .main .main-i{}
.slider .main .main-i img{width:100%;position: absolute;left:0;top:50%;z-index: 1;}
.slider .main .main-i .caption{position:absolute;right:50%;top:30%;z-index: 9 ;
margin-right: 13%;}
.slider .main .main-i .caption h2{font-size: 40px;line-height: 50px;color: #b5b5b5;
text-align:right;}
.slider .main .main-i .caption h3{font-size: 70px;line-height: 70px;color: #000000;
text-align:right;font-family: 'Open Sans Condensed';}
/*控制按钮区域*/
.slider .ctrl{width:100%;height:13px;line-height: 13px;text-align: center;
position: absolute;left: 0;bottom:-13px;position: relative;}
.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: 3;opacity: 0;transition: all .2s;
}
/*hover 到控制按钮的样式*/
.slider .ctrl .ctrl-i:hover{background-color: #f0f0f0;}
.slider .ctrl .ctrl-i:hover img{
bottom: 13px;
/*倒影*/
-webkit-box-reflect: below 0px -webkit-gradient(
linear,
left top,
left bottom,
from( transparent ),
color-stop(50% ,transparent),
to( rgba(255,255,255,.3) )
);
opacity: 1;
}
/*active 当前展现状态*/
.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;
transition: all .5s;z-index: }
.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{transition: all 1s 0.8s;
opacity: 0;margin-left: -13%;}
.slider .main .main_i-right{right:-50%;}
.slider .main .main-i_active{right:0;opacity: 1;z-index: 2; }
#main-background{right:0;opacity: 1;z-index: 1; }
.slider .main .main-i_active h2,.slider .main .main-i_active h3
{margin-right: 0;opacity: 1;}
</style>
</head>
<body>
<div>
<!-- 0.修改VIEW ->Template(关键字替换),增加 template ID-->
<div id="template_main">
<div class="main-i {{css}}" id="main_{{index}}">
<div>
<h2>{{h2}}</h2>
<h3>{{h3}}</h3>
</div>
<img src="images/{{index}}.jpg">
</div>
</div>
<div id="ctrl_main">
<a href="javascript:switchSlider({{index}});" id="ctrl_{{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.substr(0,1) === '.' ) {//查找id下面的第一个函数如果为class
return document.getElementsByClassName(id.substr(1));
}
return document.getElementById(id);
}
//3.添加幻灯片的操作
function addSliders(){
//3.1获取模板
//清除template_main下面代码的所以空白符 replace方法
var tpl_main = g('template_main').innerHTML.replace(/^\s*/,'').replace(/\s*$/,'');
var tpl_ctrl = g('ctrl_main').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)
.replace(/{{css}}/g,['','main_i-right'][i%2]);
//随机生成 空符号'' 或者是 css:main_i-right 概率i%2
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('ctrl_main').innerHTML = out_ctrl.join('');
//7.增加新的#main-background
g('template_main').innerHTML += tpl_main
.replace(/{{css}}/g,'')
.replace(/{{h2}}/g,data[i].h1)
.replace(/{{h3}}/g,data[i].h2);
g('main_{{index}}').id='main-background';
}
//5.幻灯片切换
function switchSlider(n){
//获取所以main1,main..ctrl1,ctrl2..的值
var main = g('main_'+n);
var ctrl = g('ctrl_'+n);
//当在执行切换的时候,先清除 main-i_active ctrl-i_active的值
var clear_main = g('.main-i')
var clear_ctrl = g('.ctrl-i')
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','');
}
//加上main-i_active ctrl-i_active的值
main.className += " main-i_active";
ctrl.className +=" ctrl-i_active";
//7.2切换时复制上一张幻灯片到 main-background 里面
setTimeout(function(){
g("main-background").innerHTML = g('main_'+n).innerHTML;
},1000)
}
//6.动态调整图片高度,margin-top 使其垂直居中 switchSlider({{index}})传值
function movePictures(){
var pictures = g('.picture');
for(i=0; i<pictures.length; i++){
pictures[i].style.marginTop = -(pictures[i].clientHeight/2) + 'px';
}
}
//4.当页面加载完成之后才去执行
window.onload = function(){
addSliders();
switchSlider(1)
//图片动态插入,渲染完成后不执行
setTimeout(function(){
movePictures();
},100)
}
</script>
</body>
</html>举报