gpt4 book ai didi

javascript - 如何同步两个轮播 slider - Twitter Bootstrap

转载 作者:行者123 更新时间:2023-11-28 05:24:46 25 4
gpt4 key购买 nike

我在一页上有两个 slider (twitter bootstrap 3.3.6)。两者都应通过相同的控制元件激活。当通过键盘箭头键激活时(非常快的点击),我失去了同步;特别是在 Firefox (v 49.0.1) 中。这意味着 header-slider 中的图像不属于 content-slider 中的文本。

我怎样才能意识到, slider 仅在两个 slider 的动画完成后才被激活?

我已经尝试过使用 jQuery-promise(),但错误仍然存​​在。

感谢您的帮助。

$(document).ready(function() {
$('#sliderHeader, #sliderPartner').carousel({
interval: false
})
$('#sliderPartner a.left').click(function(event) {
event.stopPropagation();
$(".carousel").promise().done(function() {
$('#sliderHeader').carousel('prev');
$('#sliderPartner').carousel('prev');
});
});
$('#sliderPartner a.right').click(function(event) {
event.stopPropagation();
$(".carousel").promise().done(function() {
$('#sliderHeader').carousel('next');
$('#sliderPartner').carousel('next');
});
});
$('#sliderPartner .carousel-indicators li').click(function(event) {
event.stopPropagation();
var indicatorNumber = $(this).attr('data-slide-to');
$('#sliderHeader').carousel(parseInt(indicatorNumber));
$('#sliderPartner').carousel(parseInt(indicatorNumber));
});
$("body").keyup(function(e) {
e.stopPropagation();
if (e.keyCode == 37) { // left
$('#sliderPartner a.left').trigger('click');
} else if (e.keyCode == 39) { // right
$('#sliderPartner a.right').trigger('click');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<!-- Twitter Bootstrap -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<header>
<div id="sliderHeader" class="carousel slide">

<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<div class="item active">
image0
</div>
<div class="item">
image1
</div>
<div class="item">
image2
</div>
<div class="item">
image3
</div>
<div class="item">
image4
</div>
</div>
</div>
</header>

<section>
<div class="row">
<div class="col-md-12">
<div id="sliderPartner" class="carousel slide">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#sliderPartner" data-slide-to="0" class="active"></li>
<li data-target="#sliderPartner" data-slide-to="1"></li>
<li data-target="#sliderPartner" data-slide-to="2"></li>
<li data-target="#sliderPartner" data-slide-to="3"></li>
<li data-target="#sliderPartner" data-slide-to="4"></li>
</ol>

<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<div class="item active">
<p>Content0</p>
</div>
<div class="item">
<p>Content1</p>
</div>
<div class="item">
<p>Content2</p>
</div>
<div class="item">
<p>Content3</p>
</div>
<div class="item">
<p>Content4</p>
</div>
</div>

<!-- Controls -->
<a class="left carousel-control" href="#sliderPartner" role="button" data-slide="prev">
<span class="glyphicon icon-prev" aria-hidden="true"></span>
<span class="sr-only">Zurück</span>
</a>
<a class="right carousel-control" href="#sliderPartner" role="button" data-slide="next">
<span class="glyphicon icon-next" aria-hidden="true"></span>
<span class="sr-only">Vor</span>
</a>
</div>
</div>
</div>
</section>

最佳答案

为什么不使用一个全局变量来跟踪您所在的页面。

$(() => {
const MAX_PAGE = 10 // or however many pages
let pageNum = 0

goToPage = (newPage) => {
pageNum = Math.max(0, (Math.min(newPage, MAX_PAGE))
doPageChange(pageNum)
}
next = () => { goToPage(pageNum + 1) }
prev = () => { goToPage(pageNum - 1) }
})

关于javascript - 如何同步两个轮播 slider - Twitter Bootstrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40261423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com