jquery - 使水井漂浮在 body 上而不是将元素插入 body

标签 jquery html css twitter-bootstrap

我有一个漂浮在我其余内容上的井。我遇到的问题是,当它加载页面时,它会下推其余内容。我该如何更改它以便它悬停在所有内容上并且不会在页面加载时将内容下推。

这是页面加载的图像。 enter image description here

这是向下滚动页面的图片

enter image description here

请注意,在第二张图片中,它是如何漂浮在内容之上的,但在第一张图片中,它是如何将内容向下推的。我应该更改什么,以便在加载井时不会将内容下推?

这是我的代码

<style>
    .well{
        margin-top: 20px;
        height: 300px;
        overflow-y:scroll;
        position: -webkit-sticky;
        position: sticky;
        top: 0;
    }

    p#clients{
        margin-top: 10%;
    }

    #client-list{
        position: -webkit-sticky;
        position: sticky;
        top: 0;
    }

    .sticky {
        top: 0;
        position: fixed;
    }

    .menu {
        top: 0;
        position: -webkit-sticky;
        position: sticky;
        z-index: 1000;
        overflow-y: auto;
    }

    #client-chosen{
        height: 100px;
    }
</style>

@push('page-scripts')
<script>

    function getClients()
    {
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
        $.ajax({
            type: 'Get',
            url: '/all-clients',
            success: function (jsonStr) {
                $('.individual-client').remove();
                $('.clients-email').remove();
                var filtered_list = '';
                for (var i = 0; i < jsonStr.length; i++) {

                    filtered_list+= "<div style='margin-bottom:3%;text-transform: none; '><input type='radio' class='form-check-input individual-client' id=" + jsonStr[i].id + " name=" + jsonStr[i].id + " value=" + jsonStr[i].id + "><p style='display: inline' class='clients-email'>&nbsp;" + jsonStr[i].email+ "</p></div>"
                }
                $('.clients-list').html(filtered_list);
            },
            error: function (msg) {
                console.log("Did not get all clients:" + msg);
            }
        })
    }

    $(document).ready(function() {
        getClients();
        $('#close-choose-client').click(function () {
            $('#client-list').hide();
        })


        $(".clients-list").on( "click",'input' ,function() {
            $("input").prop('checked', false);
            $(this).prop('checked', true);
            var id = $(this).val()
            setCookie("client-id", id);
            var text = $(this).siblings('.clients-email').text();
            $('#chosen-client').text("You are working with " + text);
        });

        $('#filter-clients').keyup(function () {
            var email = $('#filter-clients').val();
            if(email.length > 0){
                $.ajaxSetup({
                    headers: {
                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                    }
                });
                $.ajax({
                    type: 'Get',
                    url: '/filter-clients',
                    data: {
                        email: email,
                    },
                    success: function (jsonStr) {
                        $('.individual-client').remove();
                        $('.clients-email').remove();
                        var filtered_list = '';
                        for (var i = 0; i < jsonStr.length; i++) {

                            filtered_list+= "<div style='margin-bottom:3%;text-transform: none;'><input type='radio' class='form-check-input individual-client' id=" + jsonStr[i].id + " name=" + jsonStr[i].id + " value=" + jsonStr[i].id + "><p style='display: inline' class='clients-email'>&nbsp; " + jsonStr[i].email+ "</p></div>"
                        }
                        $('.clients-list').append(filtered_list);
                    },
                    error: function (msg) {
                        console.log("Did not filter clients:" + msg);
                    }
                })
            }else{
                getClients();
            }
        })

    });
</script>
@endpush

    <div class="col-md-2 xs-hidden text-left menu">
        <div class="container-fluid">
            <div class="well row" id="client-list">
                <a class="fa fa-times pull-right" id="close-choose-client" style="color: black;"></a>
                <div class="form-group">
                    <label for="usr">Filter Clients By Email</label>
                    <input type="text" class="form-control" id="filter-clients">
                </div>
                <p id="clients">Or Choose A Client</p>
                <form action="">
                    <div class="form-check">
                        <label class="form-check-label clients-list">
                            <input type="radio" class="form-check-input individual-client">
                        </label>
                    </div>
                </form>
            </div>
            <div class="well row" id="client-chosen">
                <a class="fa fa-times pull-right" id="close-choosen-client" style="color: black;"></a>
                <div class="form-group">
                    <p id="chosen-client">You have not chosen a client</p>
                </div>
            </div>
        </div>
    </div>

最佳答案

尝试使用 position: fixed 而不是 sticky。这将从流程中删除该元素,并且不会干扰页面的其余部分。

关于jquery - 使水井漂浮在 body 上而不是将元素插入 body ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47187668/

相关文章:

CSS - 在左下角放置一个 div

CSS 性能 : Multiple selectors with unique value vs. 具有重复值的唯一选择器

javascript - 如果未加载,则从外部源加载 jQuery

javascript - 在 jquery 终端中输入问候语时隐藏终端提示

Jquery 如果文本框>0

javascript - 如何在 PHP 中提交后禁用提交按钮?

html - 你如何改变导航栏的颜色

javascript - 在桨击中更改 HTML Canvas Pong 动画中的圆圈颜色

php - 显示包含多个结果的数据

html - Chrome 32 悬停时未突出显示复选框