如何在Html/Css/JavaScript中固定Messenger滚动条的宽度和高度

3

我正在使用Html/Css/JavaScript设计Messenger,其中有两个部分,一个包括联系人,另一个包括消息。我在两侧添加了滚动条,但高度不适合屏幕,会出现错误,并且不具有响应性。

如何将滚动条固定在屏幕上以使其随着屏幕移动并具有响应性?

HTML

<div class="container bootstrap snippet">
    <div class="tile tile-alt" id="messages-main">
        <div class="ms-menu">
            <div class="ms-user clearfix">
                <img src="http://bootdey.com/img/Content/avatar/avatar1.png" alt="" class="img-avatar pull-left">
                <div>Signed in as <br> m-hollaway@gmail.com</div>
            </div>

            <div class="p-15">
                <div class="dropdown">

                </div>
            </div>

            <div class="list-group lg-alt" id="scroll">
                <a class="list-group-item media" href="">
                    <div class="pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar2.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">Davil Parnell</div>
                    </div>
                </a>

                <a class="list-group-item media" href="">
                    <div class="pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar3.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">Ann Watkinson</div>
                    </div>
                </a>

                <a class="list-group-item media" href="">
                    <div class="pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar4.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">Marse Walter</div>
                    </div>
                </a>

                <a class="list-group-item media" href="">
                    <div class="lv-avatar pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar5.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">Jeremy Robbins</div>
                    </div>
                </a>

                <a class="list-group-item media" href="">
                    <div class="lv-avatar pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar6.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">Reginald Horace</div>
                    </div>
                </a>

                <a class="list-group-item media" href="">
                    <div class="pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar7.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">Shark Henry</div>
                    </div>
                </a>

                <a class="list-group-item media" href="">
                    <div class="pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar1.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">Paul Van Dack</div>
                    </div>
                </a>

                <a class="list-group-item media" href="">
                    <div class="lv-avatar pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar2.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">James Anderson</div>
                    </div>
                </a>
                <a class="list-group-item media" href="">
                    <div class="lv-avatar pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar2.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">James Anderson</div>
                    </div>
                </a>
                <a class="list-group-item media" href="">
                    <div class="lv-avatar pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar2.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">James Anderson</div>
                    </div>
                </a>
                <a class="list-group-item media" href="">
                    <div class="lv-avatar pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar2.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">James Anderson</div>
                    </div>
                </a>

                <a class="list-group-item media" href="">
                    <div class="lv-avatar pull-left">
                        <img src="http://bootdey.com/img/Content/avatar/avatar3.png" alt="" class="img-avatar">
                    </div>
                    <div class="media-body">
                        <div class="list-group-item-heading">Kane Williams</div>
                    </div>
                </a>
            </div>


        </div>

        <div class="ms-body">
            <div class="action-header clearfix">
                <div class="visible-xs" id="ms-menu-trigger">
                    <i class="fa fa-bars"></i>
                </div>

                <div class="pull-left hidden-xs">
                    <img src="http://bootdey.com/img/Content/avatar/avatar2.png" alt="" class="img-avatar m-r-10">
                    <div class="lv-avatar pull-left">

                    </div>
                    <span>David Parbell</span>
                </div>

                <ul class="ah-actions actions">

                    <li class="dropdown">
                        <a href="" data-toggle="dropdown" aria-expanded="true">
                            <i class="fa fa-sort"></i>
                        </a>

                        <ul class="dropdown-menu dropdown-menu-right">
                            <li>
                                <a href="">Latest</a>
                            </li>
                            <li>
                                <a href="">Oldest</a>
                            </li>
                        </ul>
                    </li>                             
                    <li class="dropdown">
                        <a href="" data-toggle="dropdown" aria-expanded="true">
                            <i class="fa fa-bars"></i>
                        </a>

                        <ul class="dropdown-menu dropdown-menu-right">
                            <li>
                                <a href="">Delete</a>
                            </li>
                            <li>
                                <a href="">Block Messages</a>
                            </li>
                            <li>
                                <a href="">Report as Spam</a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </div>

    <div id="scroll">

            <div class="message-feed media">
                <div class="pull-left">
                    <img src="http://bootdey.com/img/Content/avatar/avatar1.png" alt="" class="img-avatar">
                </div>
                <div class="media-body">
                    <div class="mf-content">
                        Quisque consequat arcu eget odio cursus, ut tempor arcu vestibulum. Etiam ex arcu, porta a urna non, lacinia pellentesque orci. Proin semper sagittis erat, eget condimentum sapien viverra et. Mauris volutpat magna nibh, et condimentum est rutrum a. Nunc sed turpis mi. In eu massa a sem pulvinar lobortis.
                    </div>
                    <small class="mf-date"><i class="fa fa-clock-o"></i> 20/02/2015 at 09:00</small>
                </div>
            </div>

            <div class="message-feed right">
                <div class="pull-right">
                    <img src="http://bootdey.com/img/Content/avatar/avatar2.png" alt="" class="img-avatar">
                </div>
                <div class="media-body">
                    <div class="mf-content">
                        Mauris volutpat magna nibh, et condimentum est rutrum a. Nunc sed turpis mi. In eu massa a sem pulvinar lobortis.
                    </div>
                    <small class="mf-date"><i class="fa fa-clock-o"></i> 20/02/2015 at 09:30</small>
                </div>
            </div>

            <div class="message-feed media">
                <div class="pull-left">
                    <img src="http://bootdey.com/img/Content/avatar/avatar1.png" alt="" class="img-avatar">
                </div>
                <div class="media-body">
                    <div class="mf-content">
                        Etiam ex arcumentum
                    </div>
                    <small class="mf-date"><i class="fa fa-clock-o"></i> 20/02/2015 at 09:33</small>
                </div>
            </div>

            <div class="message-feed right">
                <div class="pull-right">
                    <img src="http://bootdey.com/img/Content/avatar/avatar2.png" alt="" class="img-avatar">
                </div>
                <div class="media-body">
                    <div class="mf-content">
                        Etiam nec facilisis lacus. Nulla imperdiet augue ullamcorper dui ullamcorper, eu laoreet sem consectetur. Aenean et ligula risus. Praesent sed posuere sem. Cum sociis natoque penatibus et magnis dis parturient montes,
                    </div>
                    <small class="mf-date"><i class="fa fa-clock-o"></i> 20/02/2015 at 10:10</small>
                </div>
            </div>

            <div class="message-feed media">
                <div class="pull-left">
                    <img src="http://bootdey.com/img/Content/avatar/avatar1.png" alt="" class="img-avatar">
                </div>
                <div class="media-body">
                    <div class="mf-content">
                        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam ac tortor ut elit sodales varius. Mauris id ipsum id mauris malesuada tincidunt. Vestibulum elit massa, pulvinar at sapien sed, luctus vestibulum eros. Etiam finibus tristique ante, vitae rhoncus sapien volutpat eget
                    </div>
                    <small class="mf-date"><i class="fa fa-clock-o"></i> 20/02/2015 at 10:24</small>
                </div>
            </div>

            <div class="msb-reply clearfix">
                <textarea placeholder="What's on your mind...">
                </textarea>
                <button><i class="fa fa-file"></i></button>
                 <button><i class="fa fa-camera"></i></button>
                <button><i class="fa fa-paper-plane-o"></i></button>
            </div>
            </div>
        </div>
    </div>
</div>

CSS

body {
    font-family: Roboto,sans-serif;
    font-size: 13px;
    line-height: 1.42857143;
    color: #767676;
    background-color: #edecec;
    width:100%;
}

.container{
    width:100%;
}

div#scroll {
    height: 500px;
    overflow-y: scroll;
    overflow-x: hidden;
}

#messages-main {
    position: relative;
    margin: 0 auto;
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}
#messages-main:after, #messages-main:before {
    content: " ";
    display: table;
}
#messages-main .ms-menu {
    position: absolute;
    left: 0;
    top: 0;
    border-right: 1px solid #eee;
    padding-bottom: 50px;
    height: 100%;
    width: 240px;
    background: #fff;
}
@media (min-width:768px) {
    #messages-main .ms-body {
    padding-left: 240px;
}
}@media (max-width:767px) {
    #messages-main .ms-menu {
    height: calc(100% - 58px);
    display: none;
    z-index: 1;
    top: 58px;
}
#messages-main .ms-menu.toggled {
    display: block;
}
#messages-main .ms-body {
    overflow: hidden;
}
}
#messages-main .ms-user {
    padding: 15px;
    background: #f8f8f8;
}
#messages-main .ms-user>div {
    overflow: hidden;
    padding: 10px 5px 0 15px;
    font-size: 11px;
}
#messages-main #ms-compose {
    position: fixed;
    bottom: 120px;
    z-index: 1;
    right: 30px;
    box-shadow: 0 0 4px rgba(0, 0, 0, .14), 0 4px 8px rgba(0, 0, 0, .28);
}
#ms-menu-trigger {
    user-select: none;
    position: absolute;
    left: 0;
    top: 0;
    width: 50px;
    height: 100%;
    padding-right: 10px;
    padding-top: 19px;
}
#ms-menu-trigger i {
    font-size: 21px;
}
#ms-menu-trigger.toggled i:before {
    content: '\f2ea'
}
.fc-toolbar:before, .login-content:after {
    content: ""
}
.message-feed {
    padding: 20px;
}
#footer, .fc-toolbar .ui-button, .fileinput .thumbnail, .four-zero, .four-zero footer>a, .ie-warning, .login-content, .login-navigation, .pt-inner, .pt-inner .pti-footer>a {
    text-align: center;
}
.message-feed.right>.pull-right {
    margin-left: 15px;
}
.message-feed:not(.right) .mf-content {
    background: #03a9f4;
    color: #fff;
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}
.message-feed.right .mf-content {
    background: #eee;
}
.mf-content {
    padding: 12px 17px 13px;
    border-radius: 2px;
    display: inline-block;
    max-width: 80%
}
.mf-date {
    display: block;
    color: #B3B3B3;
    margin-top: 7px;
}
.mf-date>i {
    font-size: 14px;
    line-height: 100%;
    position: relative;
    top: 1px;
}
.msb-reply {
    box-shadow: 0 -20px 20px -5px #fff;
    position: relative;
    margin-top: 30px;
    border-top: 1px solid #eee;
    background: #f8f8f8;
}
.four-zero, .lc-block {
    box-shadow: 0 1px 11px rgba(0, 0, 0, .27);
}
.msb-reply textarea {
    width: 100%;
    font-size: 13px;
    border: 0;
    padding: 10px 15px;
    resize: none;
    height: 60px;
    background: 0 0;
}
.msb-reply button {
    position: absolute;
    top: 0;
    right: 0;
    border: 0;
    height: 100%;
    width: 60px;
    font-size: 25px;
    color: #2196f3;
    background: 0 0;
}
.msb-reply button:hover {
    background: #f2f2f2;
}
.img-avatar {
    height: 37px;
    border-radius: 2px;
    width: 37px;
}
.list-group.lg-alt .list-group-item {
    border: 0;
}
.p-15 {
    padding: 15px!important;
}
.btn:not(.btn-alt) {
    border: 0;
}
.action-header {
    position: relative;
    background: #f8f8f8;
    padding: 15px 13px 15px 17px;
}
.ah-actions {
    z-index: 3;
    float: right;
    margin-top: 7px;
    position: relative;
}
.actions {
    list-style: none;
    padding: 0;
    margin: 0;
}
.actions>li {
    display: inline-block;
}

.actions:not(.a-alt)>li>a>i {
    color: #939393;
}
.actions>li>a>i {
    font-size: 20px;
}
.actions>li>a {
    display: block;
    padding: 0 10px;
}
.ms-body{
    background:#fff;    
}
#ms-menu-trigger {
    user-select: none;
    position: absolute;
    left: 0;
    top: 0;
    width: 50px;
    height: 100%;
    padding-right: 10px;
    padding-top: 19px;
    cursor:pointer;
}
#ms-menu-trigger, .message-feed.right {
    text-align: right;
}
#ms-menu-trigger, .toggle-switch {
    -webkit-user-select: none;
    -moz-user-select: none;
}

JSFIDDLE:- https://jsfiddle.net/ggshn2da/


是的,请在Jsfiddle上检查:https://jsfiddle.net/ggshn2da/ - Nakhhhh
@OusmaneMahyDiaw ???? - Nakhhhh
好的,但这不是完整的解决方案,它只是第二个问题的答案... - Nakhhhh
现在我被拒绝了吗? - Nakhhhh
1个回答

1
我不理解第一个问题,但对于第二个问题,你只需要将那个div移动到外面即可。
<div class="msb-reply clearfix">
    <textarea placeholder="What's on your mind..."></textarea>
    <button><i class="fa fa-file"></i></button>
    <button><i class="fa fa-camera"></i></button>
    <button><i class="fa fa-paper-plane-o"></i></button>
</div>

https://jsfiddle.net/ggshn2da/1/


谢谢你的回复,能否请你把文件和相机图标与纸飞机图标分开呢?谢谢。 - Nakhhhh
第一个问题是两侧的高度不同,而且它不适合屏幕,就像Facebook Messenger一样。 - Nakhhhh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接