引导轮播转换和上一个/下一个按钮不起作用
Posted
技术标签:
【中文标题】引导轮播转换和上一个/下一个按钮不起作用【英文标题】:Bootstrap Carousel Transitions and Prev/Next Buttons Not Working 【发布时间】:2012-09-14 23:07:53 【问题描述】:我正在尝试实现 twitter 引导轮播,但它不起作用 - 它不会自动切换图像,并且上一个/下一个按钮不起作用。
我尝试按照Bootstrap Carousel Not Automatically Sliding 和Bootstrap Carousel Not working 的建议切换到jquery 1.7.1,但似乎没有任何帮助。
任何想法都将不胜感激。
<!DOCTYPE html>
<html>
<head>
<title>Slideshow Test</title>
<link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
<script src="js/bootstrap.js"></script>
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/bootstrap-transition.js"></script>
</head>
<body>
<div id="myCarousel" class="carousel slide" style="width:450px">
<!-- Carousel items -->
<div class="carousel-inner">
<div class="item active"><img src="img/IMG_2.jpg"></div>
<div class="item"><img src="img/IMG_3.jpg"></div>
<div class="item"><img src="img/IMG_1.jpg"></div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>
</div>
</div>
</body>
</html>
您可以在www.abbymilberg.com/bootstrap查看它及其链接文件。
【问题讨论】:
【参考方案1】:我遇到了同样的问题,即使在正确的顺序中包含 .js,我在“onclick”事件上修复了它,如下所示:
<a class="left carousel-control" href="#myCarousel" data-slide="prev" onclick="$('#myCarousel').carousel('prev')">‹</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next" onclick="$('#myCarousel').carousel('next')">›</a>
我知道这不是最干净的解决方案,但它确实有效。
【讨论】:
如果您遇到此问题,请确保 prev/next 按钮中的 href 引用正确的 ID。它应该是#id(jquery 表示法)。应该不需要添加onclick。 这里有同样的问题。我要进行onclick
脏修复,但如果您碰巧知道它为什么不起作用,我会很高兴听到它。
你也可以像这样添加 return false onclick="$('#carouselInner').carousel('next'); return false;"
bs4 上也一样【参考方案2】:
你应该在包含 jquery.js 之后包含 bootstrap.js:
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/bootstrap.js"></script>
【讨论】:
另外,bootstrap-transition.js 应该在所有其他 Bootstrap 插件之前(但仍然在 jQuery 之后,正如 Daniil 正确识别的那样)。 谢谢!这解决了它 - 你是最好的!【参考方案3】:我遇到了同样的问题,我通过在 css 中添加 z-index 来解决它:
.carousel-control.left, .carousel-control.right
left: 0;
z-index: 1;
【讨论】:
这对我很有帮助,因为我使用 hack 来更改.carousel-caption
的 z-index,所以我还必须更改控件的 z-index,以便它们出现在标题的顶部.【参考方案4】:
<div class="left carousel-control" data-target="#myCarousel" data-slide="prev"/>
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</div>
<div class="right carousel-control" data-target="#myCarousel" data-slide="next"/>
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</div>
【讨论】:
对你的按钮做一个类并在我的代码上检查数据目标谢谢:)【参考方案5】:尝试在控件启动之前关闭“carousel-inner”
<div id="myCarousel" class="carousel slide" style="width:450px">
<div class="carousel-inner">
<div class="item active"><img src="img/IMG_2.jpg"></div>
<div class="item"><img src="img/IMG_3.jpg"></div>
<div class="item"><img src="img/IMG_1.jpg"></div>
</div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>
</div>
【讨论】:
这是因为 OP 在引导后包含 jquery。这无济于事 这对这些家伙有用twitter.github.com/bootstrap/javascript.html#carousel 这是因为 bootstrap 在 jQuery 可用之前尝试使用 jQuery。 谢谢,我明白了。只是真的以为是那个 div。 将 jquery 放在 bootstrap 之前解决了我原来的问题,但在我这样做之后,在浏览完所有幻灯片后它仍然没有正确循环。按照这个建议解决了这个问题,非常感谢!【参考方案6】:我有同样的症状,但我的问题是我没有在我的轮播中包含一个 id。正如 cmets 中的其他用户所建议的那样,在具有 .carousel
类的同一 div 上添加一个 id,并在按钮/链接上使用 href="#my-carousel"
为我解决了这个问题。
<div id="my-carousel" class="carousel slide" style="width:450px">
^----------------------------------v
<a class="carousel-control left" href="#my-carousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#my-carousel" data-slide="next">›</a>
</div>
【讨论】:
【参考方案7】:进一步回答user2139170
,这是构建轮播的正确方法(BootStrap 3.3.5):
jsFiddle Example
<div id="myCarousel" class="carousel slide text-center" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
</ol>
<div class="carousel-inner" role="listbox">
<div class="item active">
<h4>A mind-bending lecture on applied philosophy by Oxford lecturer Ravi Zacharias.</h4>
<br>
<span class="font-normal">youtube/watch?v=3ZZaoavCsYE</span>
</div>
<div class="item">
<h4>Director of the Human Genome Project discusses the greatest mystery of life</h4>
<br>
<span class="font-normal">youtube/watch?v=EGu_VtbpWhE</span>
</div>
</div>
<a href="" class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a href="" class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div><!-- #myCarousel -->
<script>
$(function()
$('.carousel-control').click(function(e)
e.preventDefault();
$('#myCarousel').carousel( $(this).data() );
);
);//END document.ready
</script>
注意:此答案需要 jQuery,因此请确保已加载库。当然,bootstrap 需要 jQuery,所以你应该已经引用了它。
【讨论】:
【参考方案8】:使用下面的代码会帮助你
按钮功能良好
运行代码 sn-p 来检查它是否解决了你的问题
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Carousel Example</h2>
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner">
<div class="item active">
<img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20(2).jpg" style="width:100%;">
</div>
<div class="item">
<img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20(4).jpg" style="width:100%;">
</div>
<div class="item">
<img src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20(6).jpg" style="width:100%;">
</div>
</div>
<!-- Left and right controls -->
<a class="left carousel-control" href="#myCarousel" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
</body>
</html>
【讨论】:
【参考方案9】:我的上一个/下一个按钮不起作用。这是因为旧版本的引导 js 脚本。
我使用了 bootstrap 网站中提到的最新推荐版本的 javascripts(jquery 和 bootstrap),并且效果很好
【讨论】:
【参考方案10】:检查您是否在 head 标记中粘贴了正确的引导链接。它对我有用。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 尝试更改为不同版本的引导程序。引导版本 5.1x 给我带来了一些问题,所以我将其更改为 4.6,它工作得很好。 这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review以上是关于引导轮播转换和上一个/下一个按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Blazor Webassembly 中的 JavaScript 免费引导轮播