teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

もっと上手くできるかも

2019/08/19 02:46

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -19,4 +19,69 @@
19
19
  $('#hoge').animate({scrollTop: $('#hoge')[0].scrollHeight}, 'fast');
20
20
  }
21
21
  ```
22
- JavaScriptのタイミングは適当に変えてください。
22
+ JavaScriptのタイミングは適当に変えてください。
23
+
24
+ ### 追記
25
+ 比較演算子の調整が必要かも
26
+ ```HTML
27
+ <body>
28
+ <div class="container area bg-light" id=hoge>
29
+ <div id=messages>
30
+ <div class="message">hoge</div>
31
+ <div class="message">hoge</div>
32
+ <div class="message">hoge</div>
33
+ <div class="message">hoge</div>
34
+ <div class="message">hoge</div>
35
+ <div class="message">hoge</div>
36
+ <div class="message">hoge</div>
37
+ <div class="message">hoge</div>
38
+ <div class="message">hoge</div>
39
+ <div class="message">hoge</div>
40
+ <div class="message">hoge</div>
41
+ <div class="message">hoge</div>
42
+ <div class="message">hoge</div>
43
+ <div class="message">hoge</div>
44
+ <div class="message">hoge</div>
45
+ <div class="message">hoge</div>
46
+ <div class="message">hoge</div>
47
+ <div class="message">hoge</div>
48
+ <div class="message">hoge</div>
49
+ <div class="message">hoge</div>
50
+ <div class="message">hoge</div>
51
+ <div class="message">hoge</div>
52
+ <div class="message">hoge</div>
53
+ <div class="message">hoge</div>
54
+ <div class="message">hoge</div>
55
+ <div class="message">hoge</div>
56
+ <div class="message">hoge</div>
57
+ <div class="message">hoge</div>
58
+ <div class="message">hoge</div>
59
+ <div class="message">hoge</div>
60
+ <div class="message">hoge</div>
61
+ <div class="message">hoge</div>
62
+ <div class="message">hoge</div>
63
+ <div class="message">hoge</div>
64
+ <div class="message">これをbottom: 0の位置にくるようにしたい</div>
65
+ </div>
66
+ </div>
67
+ </body>
68
+ ```
69
+ ```CSS
70
+ .area {
71
+ height: 50vh;
72
+ overflow-y: scroll
73
+ }
74
+ ```
75
+ ```JavaScript
76
+ window.onload = function() {
77
+ var aH = window.innerHeight / 2;
78
+ var mH = $('#messages').outerHeight();
79
+ if (mH<aH) {
80
+ var offset = $('#messages').offset({top:aH-mH});
81
+ } else {
82
+ $('#hoge').animate({scrollTop: $('#hoge')[0].scrollHeight}, 'fast');
83
+ }
84
+ }
85
+ ```
86
+ 両方要jQuery
87
+ 思いつき等々で書いたのでもっといい書き方あるかもしれません。