css/html/JSでiosアプリを作成しています。
デフォルトのスクロールのデザインが何も設定されていないので、
明示的にスクロールできることが分かるようにしたいです。
現在のコード(css)は下記です。
html
1<div id="hoge" class="element"></div>
css
1/* 表示範囲 */ 2#hoge{ 3 width:50%; 4 height:100px; 5 background:pink; 6 bottom:0; 7 left:0; 8} 9 10/* あー、同じ.cssファイルの中で同じclass名、id名って設定できるんやっていう確認 11しかも、同じ属性を設定してもエラーにならなくて、後で記述したほうが適用される*/ 12#hoge{ 13 color:white; 14 background:green; 15} 16 17/* overflow: auto;はデフォルトでは縦のみのスクロールバー?*/ 18/* 表示領域を超えたら自動でスクロールできるようになります */ 19/* topとかrightとかの位置はスクロールバーの位置ではなくて、表示領域全体にかかってる。そしてこっちのほうが後に記述しているのに、idの方が優先される。 */ 20.element{ 21 overflow-y: scroll; 22 position: fixed; 23 top:0; 24 right:0; 25} 26 27/* スクロールバー本体 */ 28.element::-webkit-scrollbar{ 29 width: 50px; 30 background: pink;/* startとend設定してなかったら表示される */ 31} 32 33 34/* 中央のつまみ部分 */ 35/* スクロールバーの動く部分 */ 36.element::-webkit-scrollbar-thumb{ 37 background: yellow; 38 border-radius: 2px; 39} 40 41/* スクロールバーの動く部分の前 */ 42.element::-webkit-scrollbar-track-piece:start{ 43 background: blue; 44} 45/* スクロールバーの動く部分の後ろ */ 46.element::-webkit-scrollbar-track-piece:end{ 47 background: red; 48} 49 50/* 横も縦もある場合の交点 */ 51/* スクロールバー角 */ 52.element::-webkit-scrollbar-corner{ 53 background: transparent; 54} 55 56/* ここから先は何か調べてない */ 57 58.element::-webkit-scrollbar:horizontal{ /* 横方向のスクロールバー本体 */ 59 width: 5px; 60 background: #9aadfc; 61} 62.element::-webkit-scrollbar-thumb:horizontal{ /* 横方向のスクロールバーの動く部分 */ 63 background: #435295; 64 border-radius: 2px; 65} 66 67
java
1var html; 2for(i = 0; i < 1000; i++){ 3html += "あ"; 4} 5 6$("div.element").html(html);
これで文字が範囲よりも長くなったら縦にのみスクロールできます。
[仕様]
・縦にのみスクロールのまま(横にはしなくていい)
・縦スクロールバーのみ自動表示
・範囲内に収まる時はスクロールバーは出さなくていい
どこをどのように修正すればよろしいでしょうか。
cssだけではできないとかでも大丈夫ですので、ご回答の程宜しくお願いいたします。
※追記
質問内容詳しく書き直しました。
コメントアウトも書いております。
色々試してみて、
/* 表示領域を超えたら自動でスクロールできるようになります */
.element{
overflow-y: scroll;
position: fixed;
top:0;
right:0;
}
のpositionの値が怪しいのではないかと思っています。
static
absolute
relative
fixed
全て試してみましたが、どれもうまく表示されません。
ただし、fixedの時だけ、画面遷移したときに一瞬だけぱっと表示されて、
すぐ消えてしまうのです。
他の何かが邪魔しているのでしょうか。
それとも、何か設定が足りないのでしょうか。
宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー