首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >引导模式问题-滚动被禁用

引导模式问题-滚动被禁用
EN

Stack Overflow用户
提问于 2015-01-22 05:21:53
回答 26查看 114.1K关注 0票数 112

我有一个模式,在这个模式中,有一个显示大量隐藏内容的下拉列表,这是有效的。

现在,当您打开堆叠在第一个模式之上的下一个模式并关闭它时,下方的模式滚动将被禁用。

我已经创建了一个完整的示例,包括复制我面临的问题的步骤。你可以在here上看到它。

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">
    <title></title>
    <style>

    </style>
</head>
<body>


    <input type="button" data-toggle="modal" data-target="#modal_1" class="btn btn-lg btn-primary" value="Open Modal 1" >

    <div class="modal fade" id="modal_1">
        <div class="modal-dialog modal-sm">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                    <h4 class="modal-title">First Modal</h4>
                </div>
                <div class="modal-body">



                    <form class="form">

                        <div class="form-group">
                            <label>1) Open This First: </label>
                            <input type="button" data-toggle="modal" data-target="#modal_2" class="btn btn-primary" value="Open Modal 2" >
                        </div>

                        <div class="form-group">
                            <label>2) Change this once you have opened the modal above.</label>
                            <select id="change" class="form-control">
                                <option value="small">Show Small Content</option>
                                <option value="large">Show Large Content</option>
                            </select>
                        </div> 

                        <div id="large" class='content-div'>
                            <label>Large Textarea Content.. Try and scroll to the bottom..</label>
                            <textarea rows="30" class="form-control"></textarea>

                        </div>

                        <div id="small" class='content-div'>
                            <label> Example Text Box</label> 
                            <input type="text" class="form-control">
                        </div>  


                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>


    <div class="modal fade" id="modal_2">
        <div class="modal-dialog modal-sm">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                    <h4 class="modal-title">Second Modal</h4>
                </div>
                <div class="modal-body">

                    <hp>This is the stacked modal.. Close this modal, then chenge the dropdown menu, you cannot scroll... </h5>

                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>


</body>
<script src="http://code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js" type="text/javascript"></script>
<script>

    $(document).ready(function() {


        $(".content-div").hide();
        $("#change").change(function() {
            $(".content-div").hide();
            $("#" + $(this).val()).show();
        });


    });

</script>
</html>

下面是一个Bootply,用来展示实际的行为:

Bootply

EN

回答 26

Stack Overflow用户

发布于 2015-01-22 06:01:32

这也是一种解决方案

代码语言:javascript
运行
复制
.modal {
  overflow-y:auto;
}

http://www.bootply.com/LZBqdq2jl5

Auto运行得很好:)这实际上将修复任何运行高于屏幕尺寸的模式。

票数 149
EN

Stack Overflow用户

发布于 2016-05-04 23:37:15

这是因为当您关闭一个模式时,它会从<body>标记中删除modal-open。Bootstrap不支持同一页面上的多个模态(至少在BS3之前是这样)。

让它工作的一种方法是,在关闭一个模式时使用BS触发的hidden.bs.modal事件,然后检查是否有任何其他模式打开,以便在主体上强制modal-open类。

代码语言:javascript
运行
复制
// Hack to enable multiple modals by making sure the .modal-open class
// is set to the <body> when there is at least one modal open left
$('body').on('hidden.bs.modal', function () {
    if($('.modal.in').length > 0)
    {
        $('body').addClass('modal-open');
    }
});
票数 79
EN

Stack Overflow用户

发布于 2015-01-22 05:56:58

我已经为你找到了一个解决方案。我不确定为什么它不能工作,但是在你的CSS中只需要一行代码就可以解决这个问题。在关闭第二个模式之后,第一个模式以某种方式获得了overflow-y:hidden。即使它实际上设置为auto

您需要重写此代码,并在CSS中设置您自己的声明:

代码语言:javascript
运行
复制
#modal_1 {
    overflow-y:scroll;
}

在这里,您有一个可以工作的DEMO

编辑:链接错误,抱歉。

票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28077066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档