jquery - 如何在移动设备上正确更改引导轮播的布局?
问题描述
在我的 dektop 页面上,我当前的布局工作得很好:
<div id="elementSlider" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<div class="row">
<div class="col-12 col-md-3">
...
</div>
<div class="col-12 col-md-3">
...
</div>
<div class="col-12 col-md-3">
...
</div>
<div class="col-12 col-md-3">
...
</div>
</div>
</div>
<div class="carousel-item">
<div class="row">
<div class="col-12 col-md-3">
...
</div>
<div class="col-12 col-md-3">
...
</div>
<div class="col-12 col-md-3">
...
</div>
<div class="col-12 col-md-3">
...
</div>
</div>
</div>
</div>
</div>
现在我希望能够在移动设备上单独滑动每个元素。为此,我需要创建第二个轮播,正如此处对同一问题的答案所暗示的那样,或者以某种方式更改我的布局。我宁愿改变布局,这样我就不需要每次都创建第二个轮播。现在我的解决方案如下所示:
if ($(window).width() < 768) {
const moveItems = $('.carousel-inner').find('.col-12').each(function () {
let element = $(this)
$(this).closest('.carousel-inner').append(element)
})
$.when.apply(this, moveItems).done(function () {
$('.carousel-inner').find('.carousel-item').remove()
$('.carousel-inner').find('.col-12').each(function (i) {
if(i === 0) {
$(this).wrap('<div class="carousel-item active"><div class="row"></div></div>')
} else {
$(this).wrap('<div class="carousel-item"><div class="row"></div></div>')
}
})
})
}
但它并不能真正可靠地工作。有没有人对此有更好的解决方案?
解决方案
推荐阅读
- android - Android导航组件中的重复FragmentContainerView
- pandas - 除了某些行之外,熊猫数据框的差异?
- python - 为熊猫数据框记录断言附加参数
- jquery - Webpack x Symfony 5 - 未定义 JQuery
- python - 跨多个模型的 SQLAlchemy 模型约束
- html - Angular 10,Modal 在单击第二个对象之前不显示适当的数据
- python - ipysheet.sheet 转换为 DataFrame 并保存已完成的手动更改
- windows - Windows Perl - Win32::Systray 和 IO::Socket::Multicast - 如何让它们一起工作?
- ios - CKBrowseSwitcherViewController 覆盖 -traitcollection getter?
- sql - 选择紧密绑定输入日期范围的行