<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>幻灯片效果</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
body{
padding: 50px 10%;
}
.slider .main,.slider{
width: 100%;
height: 400px;
position: relative;
}
/*幻灯片*/
.slider .main{
overflow: hidden;
}
.slider .main .main_i{
width: 100%;
position: absolute;
right: 50%;
top:0px;
-webkit-transition:all 0.5s;
opacity: 0;
}
.slider .main .main_i img{
width: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 1;
}
/*控制*/
.slider .ctrl {
width: 100%;
height: 13px;
line-height: 13px;
text-align: center;
position: absolute;
left: 0;
bottom: -13px;
background: #ccc;
}
.slider .ctrl .ctrl_i{
display: inline-block;
width: 150px;
height: 13px;
background: #ccc;
border: 1px solid;
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 0.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,
0 0,
0 100%,
from(transparent),
color-stop(50%,transparent),
to(rgba(255, 255, 255, 0.3))
);
opacity: 1;
}
/*active 当前状态*/
.slider .ctrl .ctrl_i_active img:hover,
.slider .ctrl .ctrl_i_active{
background-color: #ccc;
}
.slider .ctrl .ctrl_i_active:hover img{
opacity: 0;
}
.slider .main .main_i_active{
right: 0;
opacity:1;
}
</style>
</head>
<body>
<div class="slider">
<div class="main" id="template_main">
<div class="main_i" id="main_{{index}}">
<img src="data:images/{{index}}.jpg" alt=""/>
</div>
</div>
<div class="ctrl" id="template_ctrl">
<a class="ctrl_i " id="ctrl_{{index}}" href="javascript:switchSlider({{index}});">
<img src="data:images/{{index}}.jpg" alt=""/>
</a>
</div>
</div>
</body>
<script>
//1. 数据定义
var data = [
{img:1},
{img:2},
{img:3},
{img:4},
{img:5}
]
//定义通用函数
var g = function(id){
if(id.substr(0,1) == "."){
return document.getElementsByClassName(id.substr(1))
}
return document.getElementById(id);
}
//添加幻灯片
function addslider(){
var tpl_main = g('template_main').innerHTML;
var tpl_ctrl = g('template_ctrl').innerHTML;
var out_main = [];
var out_ctrl = [];
for(i in data){
var _html_main = tpl_main
.replace(/{{index}}/g,data[i].img)
.replace(/{{index}}/g,data[i].img)
var _html_ctrl = tpl_ctrl
.replace(/{{index}}/g,data[i].img);
out_main.push(_html_main);
out_ctrl.push(_html_ctrl);
}
//把html 写到对应的dom 中
g("template_main").innerHTML = out_main.join("");
g("template_ctrl").innerHTML = out_ctrl.join("");
}
//幻灯片切换
function switchSlider(n){
// 获得要展现的幻灯片& 控制按钮
var main = g("main_" + n);
var ctrl = g("ctrl_" + n);
// 获得所有的幻灯片&控制按钮 dom
var clear_main = g(".main_i")
var clear_ctrl = g(".ctrl_i")
//清除样式
for(var i = 0 ;i < clear_main.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.className += " main_i_active";
ctrl.className += " ctrl_i_active";
}
//何时处理幻灯片
window.onload = function(){
addslider();
switchSlider(1)
}
</script>
</html>

  

css+js 控制幻灯片效果的更多相关文章

  1. 简单的css js控制table隔行变色

    (1)用expression 鼠标滑过变色: <style type="text/css"><!-- table { background-color:#0000 ...

  2. 隔行变色---简单的css js控制table隔行变色

    (1)用expression 鼠标滑过变色: <style type="text/css"><!-- table { background-color:#0000 ...

  3. 伪元素after,before,css/js控制样式

    CSS<style> body { font: 200%/1.45 charter; } ref::before { content: '\00A7'; letter-spacing: . ...

  4. 使用CSS实现一个简单的幻灯片效果

    方法一: 简单的CSS代码实现幻灯片效果 方法二: 使用CSS3 Animation来制作幻灯片 方法一: 简单的CSS代码实现幻灯片效果 话不多说,直接上代码 <!DOCTYPE html&g ...

  5. 纯css实现幻灯片效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  6. gulp为css,js添加版本号

    由于cdn缓存,更改样式后会有一段时间不生效,解决方法就是给css,js加上版本号效果如下: 1.安装gulp插件 npm install --save-dev gulp-rev (version:9 ...

  7. 通过jquery js 实现幻灯片切换轮播效果

    观察各个电商网址轮播图的效果,总结了一下主要突破点与难点 1.->封装函数的步骤与具体实现 2->this关键字的指向 3->jquery js函数熟练运用 如animate 4-& ...

  8. CSS & JS 制作滚动幻灯片

    ==================纯CSS方式==================== <!DOCTYPE html> <html> <head> <met ...

  9. 用JS控制CSS基本样式

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp29 用JS控制CSS基本样式的方法 CSS code .class1 { ...

随机推荐

  1. 设置文字在div中垂直居中,使用line-height

    (从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期2014-02-19) line-height 行间距 详细使用方法:http://www.w3school.com.cn/css/pr ...

  2. ref和out的使用与区别

    out的使用 ————————————————————————————————————————————————— class Program    {        static void Main( ...

  3. head first-----------adpter pattern

    head first-----------------深入浅出适配器模式      适配器模式:将一个类的接口,转换成客户想要的另外一个接口,适配器然原本接口不兼容的类可以合作无间.从而可以不用更改旧 ...

  4. NotePad++ 列模式(在多行开头统一添加相同内容)

    ==> 按住Alt键不放,用鼠标左键从第一行的开头处按住向下拉,直到所有行 松开Alt键和鼠标左键,你会发现光标变成了一条跨越所有行的竖线 ==> 如果不想使用鼠标操作,可以使用 Alt+ ...

  5. Delphi ThreadPool 线程池(Delphi2009以上版本适用)

    http://blog.sina.com.cn/s/blog_6250a9df0101kref.html 在网上查找Delphi线程池,结果发现寥寥无几. 看了半天源代码,弄得一头雾水,觉得不容易理解 ...

  6. linux命令备忘

    yum info softname 查看安装包信息 yum install softname 安装包名 安装 nginx http://jingyan.baidu.com/article/aa6a2c ...

  7. 10 款精美的 CSS3 全新特效

    大家都知道,在网页制作时使用CSS技术,可以有效地对页面的布局.字体.颜色.背景和其它效果实现更加精确的控制.只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和 ...

  8. C#使用System.Data.SQLite操作SQLite

    使用System.Data.SQLite 下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 得到Sy ...

  9. 【JavsScript】一个元素绑定多个事件

    <script> document.getElementById("a").addEventListener("click", function() ...

  10. [Angular 2] Set Properties on Dynamically Created Angular 2 Components

    When you generate Angular 2 components, you’re still able to access the component instance to set pr ...