我正在使用 Bootstrap 3.0,我有一个打开的模态窗口,底部有两个“按钮”,一个是“联系我们”,另一个是“关闭”。
当有人单击“联系我们”按钮时,我希望关闭模态窗口并自动将用户带到同一页面上的特定锚点。
以下不起作用。它确实将页面滚动到所需的锚点,但用户看不到这一点,因为它没有关闭模式窗口......
<a class="btn btn-info" data-dismiss="modal" href="#section-contact">Contact Us</a>
我正在使用 Bootstrap 3.0,我有一个打开的模态窗口,底部有两个“按钮”,一个是“联系我们”,另一个是“关闭”。
当有人单击“联系我们”按钮时,我希望关闭模态窗口并自动将用户带到同一页面上的特定锚点。
以下不起作用。它确实将页面滚动到所需的锚点,但用户看不到这一点,因为它没有关闭模式窗口......
<a class="btn btn-info" data-dismiss="modal" href="#section-contact">Contact Us</a>
您是否尝试或考虑过关闭按钮上的 jquery onclick 功能?
也许您可以强制模式手动关闭(请参阅文档)
$('#myModal').modal('hide');
并使用导航到锚点(见答案)
$(document.body).scrollTop($('#anchorId').offset().top);
结果将是:
HTML:
<a class="btn btn-info" href="#" id="contact_btn">Contact Us</a>
jQuery:
$('#contact_btn').click(function(){
$('#myModal').modal('hide');
$(document.body).scrollTop($('#anchorId').offset().top);
});
我遇到了同样的问题,但兰提供的答案对我不起作用。
最后,我通过使用onClick
关闭模式类而不是使用我想要关闭.modal
的特定模式的 id 来解决这个问题。#myModal
这是有效的,因为您一次只能在您的网络中打开一个模式:
<a href="#section-contact" onClick="$('.modal').modal('hide');">Contact us</a>
JS
// .my-anchor = the class of the trigger
$('.my-anchor').on('click', function(e) {
e.preventDefault();
// it will search throughout .my-anchor ancestors to find the closest .modal
$(this).closest('.modal').modal('hide');
var hash = this.hash;
$('html, body').animate({ scrollTop: $(hash).offset().top }, 300);
});
HTML
// clicking this link will close the modal and scroll to wherever #products is located on the page
<a href="#products" className="my-anchor">Click Here</a>
在此示例中,哈希将是#products,但它会更新为您可能拥有的任何其他锚点
其他答案都不适合我。但是这段代码做了:
<a href="#contact" onclick='$(".modal").parent().hide()'>contact form</a>
我正在使用另一个解决方案来解决这个问题。当我有一个带有“部分”概述的模态时,我遇到了同样的问题,我想在同一页面上跳出这个模态到特定部分。我只需在链接中传递节 id 并通过 GET 选择节 ID 并对节做一个 PHP 标头。
我在模态中的 HTML 链接:
<a class="small text-primary stretched-link" href="1.php?section_id=123"></a>
我在同一页面上的 PHP 代码(在标题中的某处):
if($_GET){
$section_id = $_GET['section_id'];
header("Location: 1.php#$section_id");
}
if(!$_GET){
// Nichts wurde übergeben
}