html - 制作水平按钮滚动条
问题描述
我需要制作一个像这样的水平按钮滚动条,只有 HTML 和 CSS:
在浏览互联网寻找解决方案后,我的代码如下所示:
.myBtnContainer{
display: grid;
grid-gap: calc(var(--gutter) / 2);
grid-template-columns: repeat(6, calc(50% - var(--gutter) * 2));
grid-template-rows: minmax(150px, 1fr);
overflow-x: scroll;
scroll-snap-points-x: repeat(100vh);
scroll-snap-type: x mandatory;
}
.btn{
position:relative;
color: lightgrey;
text-transform: uppercase;
background: white;
padding: 1em;
border: 0.5em solid lightgrey;
border-radius: 6px;
display:inline-block;
transition: all 0.3s ease 0s;
scroll-snap-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.btn:hover{
color: grey;
border-radius: 50px;
border-color: grey;
transition: all 0.3s ease 0s;
}
<div id="myBtnContainer">
<button class="btn active" onclick="filterSelection('all')"> Show all</button>
<button class="btn" onclick="filterSelection('nature')"> American</button>
<button class="btn" onclick="filterSelection('cars')"> Italian</button>
<button class="btn" onclick="filterSelection('people')"> Asian</button>
<button class="btn" onclick="filterSelection('people')"> Mexican</button>
<button class="btn" onclick="filterSelection('people')"> Romanian</button>
<button class="btn" onclick="filterSelection('people')"> Barbeque</button>
<button class="btn" onclick="filterSelection('people')"> Indian</button>
<button class="btn" onclick="filterSelection('people')"> Chinese</button>
<button class="btn" onclick="filterSelection('people')"> Mediterranean</button>
<button class="btn" onclick="filterSelection('people')">Desserts</button>
<button class="btn" onclick="filterSelection('people')"> Smoothies</button>
<button class="btn" onclick="filterSelection('people')"> Coffee</button>
</div>
myBtnContainer
位于body
. _ 我在某处读到那是阻止scroll-snap-type: x mandatory;
工作的东西,但我仍然不知道如何解决这个问题。我对此很陌生,所以任何建议都值得赞赏。
解决方案
$(document).ready(function() {
$('.b-slider').owlCarousel({
loop: true,
margin: 10,
nav: true,
responsive: {
0: {
items: 1
},
600: {
items: 3
},
1000: {
items: 3
}
}
})
});
.btn {
color: lightgrey;
text-transform: uppercase;
background: red;
padding: 1em;
border: 0.5em solid lightgrey;
border-radius: 6px;
display: inline-block;
transition: all 0.3s ease 0s;
scroll-snap-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width:50px;
height:50px;
}
.btn:hover {
color: black;
border-radius: 50px;
border-color: grey;
transition: all 0.3s ease 0s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.js"></script>
</head>
<body>
<div class="owl-carousel b-slider">
<div class="item">
<button class="btn" onclick="filterSelection('nature')"> American</button>
</div>
<div class="item">
<button class="btn" onclick="filterSelection('nature')"> American1</button>
</div>
<div class="item">
<button class="btn" onclick="filterSelection('nature')"> American2</button>
</div>
</div>
</body>
</html>
这应该这样做。使用 owlcarousel 作为滑块
推荐阅读
- javascript - 如何使用 x-init 使用 AlpineJS 设置下拉选项的“选定”属性
- c# - 如何在 EF6 中创建外键
- c# - 使用 DocumentFormat.OpenXml 从数据库中填充阿拉伯语/英语文本的 Word 文档
- google-bigquery - Google BigQuery/Cloud Storage 无效的源 uri 前缀错误
- amazon-web-services - Fargate 服务 CPU 在重新部署后跳跃或下降
- selenium - Web 驱动程序不等待 url 更改(python)
- javascript - 如何在样式组件中使用 `as` 函数?
- javascript - 为什么 AJAX 验证会导致显示 PHP 错误消息?
- ruby-on-rails - Ruby gem 在可执行文件中使用配置
- elasticsearch - opendistroSecurityKibana 插件的问题