Bootstrap 4 Modal 在 Slick carousel div 内部不起作用
Posted
技术标签:
【中文标题】Bootstrap 4 Modal 在 Slick carousel div 内部不起作用【英文标题】:Bootstrap 4 Modal is not working Inside Slick carousel div 【发布时间】:2021-01-13 01:41:40 【问题描述】:经过大量搜索,进行大量调试后,我发现在光滑的轮播 div 内部,引导模式没有显示。只显示一个灰色的dropback。
这里是代码:在这段代码中,我们从数据库中获取详细信息,并以流畅的方式显示图像,当有人点击这些图像时,它将打开该图像的模式。但除此之外一切都很好。如何在 slick div 中调用 modal。
提前谢谢你
<?php
$ush = $mysqli->prepare("SELECT company_id, img, name from list");
$ush->execute();
$ush->store_result();
$ush->bind_result($u_bid, $u_bimg,$u_bname);
?>
<div class="company-logo">
<?php
while($ush->fetch())
?>
<div>
<a href="#<?php echo $u_bid;?>" data-toggle="modal" data-target="#<?php echo $u_bid;?>"><img
src="data:image/png;base64,<?php echo base64_encode($u_bimg); ?>" ></a>
<!-- Modal -->
<div class="modal" id="<?php echo $u_bid;?>" tabindex="-1" role="dialog" aria-labelledby="<?php echo $u_bid;?>" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-md" role="document">
<div class="modal-content">
<div class="modal-body">
<div class="container text-center">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true"><h3><b>X</b></h3></span>
</button>
<h3><?php echo $u_bname;?></h3>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
$ush->close();
?>
</div>
<script type="text/javascript">
$(document).ready(function()
$('.company-logo').slick(
dots:true,
infinite:false,
speed:300,
slidesToShow:14,
slidesToScroll:14,
arrows:false,
responsive:[
breakpoint:768,
settings:
slidesToShow:4,
slidesToScroll:4
]
)
);
</script>
【问题讨论】:
【参考方案1】:我认为您应该像这样将模式代码部分移到轮播部分之外:
<?php
$ush = $mysqli->prepare("SELECT company_id, img, name from list");
$ush->execute();
$ush->store_result();
$ush->bind_result($u_bid, $u_bimg,$u_bname);
$carousel_content = '';
$modal_content = '';
while($ush->fetch())
$carousel_content .= '<div>
<a href="#'.$u_bid.'" data-toggle="modal" data-target="#'.$u_bid.'"><img
src="data:image/png;base64,'.base64_encode($u_bimg).'" ></a>
</div>';
$modal_content .= '<!-- Modal -->
<div class="modal" id="'.$u_bid.'" tabindex="-1" role="dialog" aria-labelledby="'.$u_bid.'" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-md" role="document">
<div class="modal-content">
<div class="modal-body">
<div class="container text-center">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true"><h3><b>X</b></h3></span>
</button>
<h3>'.$u_bname.'</h3>
</div>
</div>
</div>
</div>
</div>';
?>
<?php
$ush->close();
?>
<div class="company-logo"><?=$carousel_content?></div>
<div id="modal_contents"><?=$modal_content?></div>
<script type="text/javascript">
$(document).ready(function()
$('.company-logo').slick(
dots:true,
infinite:false,
speed:300,
slidesToShow:14,
slidesToScroll:14,
arrows:false,
responsive:[
breakpoint:768,
settings:
slidesToShow:4,
slidesToScroll:4
]
)
);
</script>
【讨论】:
感谢您的回答。 javascript 附近的.company-logo
有一个缺口,我修复了这个问题,slick 正在工作,模态正在显示但只显示一家公司。
显示一家公司是指只生成一个modal的html还是生成了所有modal的html但只显示一个?
我查看了源代码,在id="modal_contents"
里面生成了所有的公司模型。但该图像只是与该公司超链接的一张。因此点击它,只为该公司打开模式。
@mimi 我的代码有错误 - $carousel_content =
应该是 $carousel_content .=
在 while 循环中,我已经更新了答案的代码部分
是的,现在它运行良好!谢谢,已采纳。以上是关于Bootstrap 4 Modal 在 Slick carousel div 内部不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Bootstrap 4 .modal('hide') 不工作
Rails 6 Bootstrap 4 Modal在提交时未关闭
同时隐藏和显示 bootstrap 4 modal 将隐藏浏览器的滚动条
通过单击链接通过 JavaScript 打开 Bootstrap 4 Modal
bootstrap 4 modal-backdrop 样式(特定模态)
Bootstrap 4 和 Rails 6:$(...).modal 不是“.js.erb”文件中的函数(但适用于其他 .js 文件?)[关闭]