HTML轮播图片卡在一起,纯html+css的轮播图问题

html:

1

2

3

css:

.slide{

width: 200px;

height: 80px;

position: relative;

margin: 0 auto;

overflow: hidden;

background-color: #f00;

}

.slide-content{

width: 100%;

height: 100%;

position: absolute;

right: -100%;

top: 0;

animation: slider-out 0.5s linear;

}

.slide-content:target{

right: 0%;

animation: slider-in 0.5s linear;

}

@keyframes slider-out{

from{

right: 0%;

}

to{

right: -100%;

}

}

@keyframes slider-in{

from{

right: 100%;

}

to{

right: 0%;

}

}

#slide1{

background-color: #f00;

}

#slide2{

background-color: #0f0;

}

#slide3{

background-color: #00f;

}

.btns{

position: absolute;

left: 0;

bottom: 0;

z-index: 100;

}

.btn{

float: left;

margin-left: 10px;

display: block;

text-align: center;

text-decoration: none;

width: 20px;

line-height: 20px;

opacity: 0.6;

color: #fff;

background-color: #b7b7b7;

}

想达到的效果是点击按钮后,对应的slide块由左往右滑动出现。

调试发现:

单击按钮后,所点按钮对应的slide块的显示效果没有按预期地变化,但其right属性和预期是一样的,与显示效果不符?

按钮部分会很奇怪地跑到右边去,我的理解是按钮明明是position:absolute的,应该基于父元素div.slide定位,为什么会和它兄弟元素一起移动所以理解不能~

将 slide-content元素的属性改为 right:100%后,完美运行,为什么?测试了一下animation配合@keyframes的动画,即使0%时的属性与元素本身属性不符,动画也会正常按流程运行,只是有个突变的效果,为什么此处行不通?

请各位指教!谢谢~!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图片轮播器是一种常见的网页元素,它用于在页面上展示一系列图片,通常通过连续切换或滑动显示下一张图片HTMLCSS和JavaScript一起使用可以实现这样的效果。以下是创建一个基本图片轮播器的基本步骤: **HTML结构**: ```html <div class="carousel-container"> <div class="carousel-items"> <img src="image1.jpg" alt="Image 1"> <img src="image2.jpg" alt="Image 2"> <!-- 添加更多的图片 --> </div> <div class="carousel-navigation"> <button prev></button> <!-- 上一张按钮 --> <button next></button> <!-- 下一张按钮 --> </div> </div> ``` **CSS样式**: ```css .carousel-container { position: relative; width: 100%; overflow: hidden; } .carousel-items { display: flex; transition: transform 0.6s ease; } .carousel-items img { width: 100%; height: auto; opacity: 0; /* 隐藏初始图片 */ order: 0; transition: opacity 0.6s ease; } .carousel-item-active img { opacity: 1; order: 1; } .carousel-navigation button { /* 样式自定义 */ } ``` **JavaScript或jQuery (可选)**: 为了实现自动轮播和用户交互,你可以使用JavaScript或库如jQuery来添加动态行为: ```javascript var slideIndex = 0; showSlides(); function showSlides() { var i; var slides = document.getElementsByClassName("carousel-items img"); for (i = 0; i < slides.length; i++) { slides[i].style.opacity = "0"; } slideIndex++; if (slideIndex > slides.length) {slideIndex = 1} slides[slideIndex-1].style.opacity = "1"; setTimeout(showSlides, 3000); // 设置轮播时间间隔(毫秒) } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值