最简单的banner图切换效果

以下代码是最基本的banner图切换效果,是js写的,兼容各大浏览器哦~~~~

效果图为:

 

代码为:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style type="text/css">
*{ padding:0; margin:0;}
body{ padding:0; margin:0; background:url(banner--img/bg.jpg) no-repeat center 200px #e9fedd; font-family:'微软雅黑';}
#wrap{ width:480px; height:480px; margin:100px auto; border:5px solid #fff; border-radius:10px; position:relative; background:#FFb;}
.pic{ width:480px; height:480px;}
#wrap p,#wrap span{ width:480px; height:30px; position:absolute; background:#000; opacity:0.4; color:#fff; text-align:center; line-height:30px; left:0;}
#wrap p{ bottom:0;}
#wrap span{ top:0;}
#wrap a{ width:40px; height:40px; text-align:center; line-height:40px; font-size:30px; color:#fff; position:absolute; top:220px; background:#000; opacity:0.3; text-decoration:none;}
#wrap a:hover{ opacity:0.8;}
#prev{ left:0;}
#next{ right:0;}
ul{position:absolute;padding-top:10px; left:180px; bottom:-30px;}
ul li{ width:20px; height:20px; border-radius:10px; float:left; background:#a4e380; list-style:none; margin-right:10px; cursor:pointer; position:relative;}
.active{ background:#66F;}
ul li div{ width:100px; height:100px; position:absolute;top:-100px; left:-40px; display:none;}
ul li div img{ width:100px; height:100px;}
</style>
<script type="text/javascript">
window.onload = function(){
var oWrap = document.getElementById('wrap');
var aImg = oWrap.getElementsByTagName('img')[0];
var aSpan = oWrap.getElementsByTagName('span')[0];
var aTxt = oWrap.getElementsByTagName('p')[0];
var oPrev = document.getElementById('prev');
var oNext = document.getElementById('next');
var aList = oWrap.getElementsByTagName('ul')[0];
var aLi = oWrap.getElementsByTagName('li');
var aDiv = oWrap.getElementsByTagName('div');
//数组加载图片
var arrImg = ['banner--img/01.jpg','banner--img/02.jpg','banner--img/03.jpg','banner--img/04.jpg'];
var arrTxt = ['这是第一张图片','这是第二张图片','这是第三张图片','这是第四张图片'];
var arrPic = ['banner--img/01.png','banner--img/02.png','banner--img/03.png','banner--img/04.png'];
var num =0;

//数据初始化
function show(){
aSpan.innerHTML = num+1+'/'+arrImg.length;
aImg.src = arrImg[num];
aTxt.innerHTML = arrTxt[num];
};
show();
//加载小圆点的数量
for(var i=0;i<arrImg.length;i++){
aList.innerHTML += '<li><div><img src ="" /></div></li>';
};
aLi[num].className = 'active';
//加载鼠标经过的图片
for(var i=0;i<arrPic.length;i++){
var aPic = aList.getElementsByTagName('img');
aPic[i].src = arrPic[i];
};
function hidn(){
for(var i=0;i<aLi.length;i++){
aLi[i].className = '';
};
};
//开始执行代码
oNext.onclick = function(){
hidn();
num++;
if(num==arrImg.length){
num=0;
};
aLi[num].className = 'active';
show();
};

oPrev.onclick = function(){
hidn();
num--;
if(num==-1){
num=arrImg.length-1;
};
aLi[num].className = 'active';
show();
};
//加载鼠标经过图标
for(var i=0;i<aLi.length;i++){
aLi[i].onmouseover = function(){
this.getElementsByTagName('div')[0].style.display = 'block';
};
aLi[i].onmouseout = function(){
this.getElementsByTagName('div')[0].style.display = 'none';
};
};
//点击小圆点时的效果
for(var i=0;i<aLi.length;i++){
aLi[i].index = i;
aLi[i].onclick = function(){
hidn();
num = this.index;
aLi[num].className = 'active';
show();
};
};
};
</script>
</head>

<body>
<div id="wrap">
<a id="prev" href="javascript:;"><</a>
<a id="next" href="javascript:;">></a>
<img class="pic" src="" />
<span>图片数量正在计算中...</span>
<p>图片文字正在加载中...</p>
<ul></ul>
</div>
</body>
</html>

 

里面的图片自己找图哦。。。

转载于:https://www.cnblogs.com/miss-carrie/p/5013067.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现CSS分层切换动画,可以利用CSS3的transform属性和过渡效果。具体步骤如下: 1. 创建一个包含多个层的父容器,并设置其position为relative。 2. 给每个层设置position为absolute,并设置z-index属性,使其堆叠顺序符合要求。 3. 给父容器设置perspective属性,以便实现3D转换效果。 4. 利用CSS3的transform属性对各个层进行旋转和平移,实现分层切换效果。 5. 为每个层添加过渡效果,使其在切换时具有平滑的动画效果。 以下是一个示例代码: ```html <div class="banner"> <img class="layer" src="layer1.png" alt="Layer 1"> <img class="layer" src="layer2.png" alt="Layer 2"> <img class="layer" src="layer3.png" alt="Layer 3"> </div> ``` ```css .banner { position: relative; width: 600px; height: 400px; perspective: 1000px; } .layer { position: absolute; width: 100%; height: 100%; transition: transform 1s ease; } .layer:first-child { transform: rotateY(0deg) translateZ(0px); z-index: 3; } .layer:nth-child(2) { transform: rotateY(-90deg) translateZ(-200px); z-index: 2; } .layer:last-child { transform: rotateY(-180deg) translateZ(-400px); z-index: 1; } .banner:hover .layer:first-child { transform: rotateY(180deg) translateZ(0px); z-index: 1; } .banner:hover .layer:nth-child(2) { transform: rotateY(90deg) translateZ(-200px); z-index: 3; } .banner:hover .layer:last-child { transform: rotateY(0deg) translateZ(-400px); z-index: 2; } ``` 在这个示例中,我们创建了一个包含三个层的banner容器。每个层都是一个img元素,并且都被绝对定位在容器内。我们设置了perspective属性为1000px,以便实现3D转换效果。 接下来,我们利用CSS3的transform属性对每个层进行旋转和平移,以实现分层切换效果。我们为每个层添加了过渡效果,使其在切换时具有平滑的动画效果。 最后,我们使用:hover伪类来触发层的切换效果。当鼠标悬停在banner容器上时,我们通过修改每个层的transform属性来实现分层切换效果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值