HTML实现banner图切换

16 篇文章 1 订阅
2 篇文章 0 订阅

首先呢,我们做出来的效果去下图,这里只是简单的写的文字,如果需要更好的话,可以自己添加或修改。(这里图片大小没有统一,有一丢丢影响效果)
在这里插入图片描述
接下来我们来看看详细的代码

HTML部分:

这里主要设置了三个盒子并列。一个存放banner图、一个是左侧的黑色背景还有一个是左侧的文字。(因为这里是设置了黑色盒子的背景透明度,为了实现背景透明、文字不透明,所以这里用的是两个盒子通过设置位置来实现的。)
存放文字的盒子里面设置了若干个盒子,开始下他的排列布局。

代码:

<body>
   <div id="banner"></div>
   <div class="list"></div>
   <div class="text">
   	<div οnmοuseοver="pic(0)">HUAWEI P40系列</div>
   	<div οnmοuseοver="pic(1)">nova 7 Pro</div>
   	<div οnmοuseοver="pic(2)">华为 畅享10</div>
   	<div οnmοuseοver="pic(3)">HUAWEI Mate30 系列</div>
   	<div οnmοuseοver="pic(4)">nova 6</div>
   	<div οnmοuseοver="pic(5)">华为智慧屏</div>
   	<div οnmοuseοver="pic(6)">智慧进阶 新品盛典</div>
  	<div οnmοuseοver="pic(7)">华为路由AX3 | AX3 Pro</div>
  	<div οnmοuseοver="pic(8)">HUAWEI WATCH GT2e</div>
  	<div οnmοuseοver="pic(9)">HUAWEI MatePad</div>
   </div>
 </body>

CSS部分:

css就主要是设置了一些基本的样式。

代码:

//设置banner图
#banner{
 width: 100%;
 height: 700px;
 background: url(img/1.png) no-repeat;
 background-size: contain;
}
//背景盒子和存放文字的盒子
.list,.text{
 position: absolute;
 right: 5%;
 width: 20%;
 height: 700px;
 margin-top: -700px;
}
.list{
 background-color: black;
 filter: opacity(0.6);
}
//设置文字的的样式
.text div{
 width: 100%;
 height: 70px;
 text-align: center;
 font-size: 15px;
 line-height: 70px;
}
//设置鼠标悬停在存放文字盒子时的样式
.text div:hover{
 color: white;
 font-size: 25px;
 line-height: 70px;
 background-color: #000000;
}

JS部分:

前面我们就把基本样式设置好了,这一部分就是来设置当鼠标悬停在对应的文字div上就显示相应的图片。

代码:

//获取banner元素
var a =document.getElementById('banner');
//定义图片的路径,存放到数组
var url=[
'url(img/1.png)','url(img/2.png)','url(img/3.png)','url(img/4.png)','url(img/5.png)',
'url(img/6.png)','url(img/7.png)','url(img/8.png)','url(img/9.png)','url(img/10.png)',
   ];
 //定义显示函数
function pic(index){
   //通过循环和判断语句,如果传过来的参数和i对应,那么久吧数组的第i个值赋值给banner的背景图片属性。
   for(var i=0;i<10;i++){
    if(i==index){
     a.style.backgroundImage=url[i];
    }
   }
}

到这里我们就完成了上面图片中的效果。

  • 7
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
实现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属性来实现分层切换的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值