css - 如何使用css制作滑块水平移动的动画并做出反应?
问题描述
我正在用 css 制作一个滑块并做出反应
我有两个状态来显示一个类根据按下的按钮向左或向右移动内容
当我给下一个时,它会前进我想要的位置,但是在第二次单击时,它会返回到原始位置而不是前进
我怎么能继续前进
除此之外,当我放置在第二类但相反的运动时,它们似乎相互抵消,只有一个有效。
我怎样才能阻止这种情况发生?
我给你留下部分代码
const [next, setNext] = useState(true);
const [prev, setPrev] = useState(false)
const nextSlide = () => setNext(!next)
const previouSide = () => setPrev(!prev)
<>
<BlogHearder>
<div className='featues-header'>
<h2 className='features-title'>Visit Our Blog</h2>
<div className='feature-arrows'>
<button className='feature-icon icon-left' onClick={previouSide}>
<FiChevronLeft className='icon' />
</button>
<button className='feature-icon icon-right' onClick={nextSlide}>
<FiChevronRight className='icon' />
</button>
</div>
</div>
</BlogHearder>
<BlogCardWrapper ref={ref} >
<div className={next ? 'blog-slider next' : 'blog-slider', prev? 'blog-slider' : 'blog-slider prev' }>
{state.map(blog => (
<BlogCard key={blog.id} blog={blog} />
))}
</div>
</BlogCardWrapper>
</>
我正在使用样式化组件
BlogCardWrapper = styled.div`
width: 100%;
display: flex;
justify-content: flex-start;
overflow: hidden;
.next{
transform:translateX(-19%)
}
.prev{
transform: translateX(19%);
}
.blog-slider {
width: 250%;
display: flex;
justify-content: space-between;
flex-shrink: 0;
transition: all 0.5s;
}
`
对于向右水平移动类 .next 和向左 .prev
19% 是我的滑块卡的大小
提前感谢任何可以帮助我的人
解决方案
推荐阅读
- php - httpful POST 请求:获取原始 HTTP 消息
- c# - 是否可以从 .EML 文件回复?
- ios - 当我点击不同的标签栏项目时,Lottie 动画停止
- java - 为什么在使用 for-each 时循环变量实际上是 final 的?
- java - 如果 Map 则将元素添加到地图
> 地图...在java中 - javascript - 如何在通用文件中存储值并在角度 6 中的其他组件中获取相同的值
- azure-active-directory - 在 SPA + Web API 中通过 MSAL 检查 Azure Active Directory 组成员身份
- angular - 使用 Kendo 编译 Angular v8 项目时出现 IVY 错误
- jmeter - 如何使用 jmeter 中的步进线程组设置需要在 1 分钟(60 秒)内完成的 1000 个线程?
- jenkins - Jenkinsfile 构建作业参数