简体   繁体   中英

Moving scrollable div downwards automatically

html

<div id="speech"></div>
<div id="test"></div>
<div id="testt"></div>

css

/*speech bubble*/
.bubble {
position: relative;
width: auto;
height: 40px;
padding-left: 10px;
padding-right: 10px;
background: #FFFFFF;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
font-family: sans-serif;
font-size: 15px;
display: inline-block;
left: 17px;
vertical-align: middle;
line-height: 40px; 
max-width: 240px;
float: left;
clear: both;
}

.bubble:after {
content: '';
position: absolute;
border-style: solid;
border-width: 10px 10px 10px 0;
border-color: transparent #FFFFFF;
display: block;
width: 0;
z-index: 1;
left: -10px;
top: 10px;
}

#test, #testt {
height: 100px;
width: 100px;
}
#speech {
height: 500px;
width: 200px;
float: right;
overflow-y: scroll;
background-color: #000;
}

javascript

$(document).ready(function () {
"use strict";
$("#test").click(function () {
    $("#speech").append('<p class="bubble">test223123</p>');
});
$("#testt").click(function () {
    $("#speech").append('<p class="bubble">test</p>');
});
});

When I click on "test" a few times, the speech bubbles that are appended into the speech div continues to go downwards but the scroll thing stays at the top.

How do i make it such that the scroll bar goes to the bottom whenever new speech bubbles are added?

Very simple, just use the scrollTop function. Add this single line:

$('#speech').scrollTop($('#speech').height());

You're now simply appending your bubble. When the bubble is appended, you find the height of your div and you use this value to scroll down.

I have made a little codepen where you can view all the code.

do not use height, but scrollHeight

$(document).ready(function () {
   "use strict";
   $("#test").click(function () {
     $("#speech").append('<p class="bubble">test223123</p>').scrollTop($("#speech").prop("scrollHeight"));
   });
   $("#testt").click(function () {
     $("#speech").append('<p class="bubble">test</p>').scrollTop($("#speech").prop("scrollHeight"));
   });
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM