質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

3462閲覧

iosアプリでスクロールできることを明示的にしたい。

b1ackc0ffee

総合スコア267

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2015/11/18 07:04

編集2015/11/18 10:10

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の時だけ、画面遷移したときに一瞬だけぱっと表示されて、
すぐ消えてしまうのです。
他の何かが邪魔しているのでしょうか。
それとも、何か設定が足りないのでしょうか。

宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ckaposndbbba

2015/11/18 08:56

-からはじまる属性は使用できますので、書き方に問題があると考えられます。 書いてみたCSSを書いていただけませんでしょうか。
b1ackc0ffee

2015/11/18 10:09

質問内容詳しく書き直しました。 コメントアウトも書いております。 色々試してみて、 /* 表示領域を超えたら自動でスクロールできるようになります */ .element{ overflow-y: scroll; position: fixed; top:0; right:0; } のpositionの値が怪しいのではないかと思っています。 static absolute relative fixed 全て試してみましたが、どれもうまく表示されません。 ただし、fixedの時だけ、画面遷移したときに一瞬だけぱっと表示されて、 すぐ消えてしまうのです。 他の何かが邪魔しているのでしょうか。 それとも、何か設定が足りないのでしょうか。 宜しくお願いいたします。
guest

回答1

0

ベストアンサー

こんにちは。
動かないということでしょうか?
こちらで試したところ動いたのですが...。http://s.codepen.io/hikaru/debug/ojVzmM
(見当違いでしたら申し訳ありません)

投稿2015/11/18 10:42

ckaposndbbba

総合スコア210

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

b1ackc0ffee

2015/11/18 11:36

そうなんですよね。。 私もjsfiddleで実行したら、正常に動作するので、 現在のアプリで他のファイルが邪魔しているのではないかと思っています。 別にJSファイルがあって、 そこに下記のようなコードがあります。 //スクロール禁止 var scrollTop; scrollTop = $(window).scrollTop(); $('body').addClass('element').css('top', (-scrollTop) + 'px'); コメントにスクロール禁止って書いているのですが、 このコードが邪魔しているわけではありませんかね??
ckaposndbbba

2015/11/18 13:49

ありがとうございます。やはりそうですか。 http://s.codepen.io/hikaru/debug/gaEgVz これは、提示していただいたJSを入れてみたものですが、問題なく動作しています。 iOSアプリを作っているということですが、Webアプリですよね?デバッグはiOSで行っていますか?
b1ackc0ffee

2015/11/19 01:10

新しいクラスができて、赤いバーが表示されるだけで、 元々のスクロールバーに影響はでていませんよね><、 デバッグは、xcode、ios、iPadで行っています。 これって関係ありますかね? >> スクロールバーが消えることがあります。 - LUNAPEDIA http://lunapedia.lunascape.jp/index.php?title=%E3%82%B9%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%90%E3%83%BC%E3%81%8C%E6%B6%88%E3%81%88%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82
b1ackc0ffee

2015/11/20 04:38 編集

すみません、クラス名間違っていたのが原因でしたwww ごめんなさい。
ckaposndbbba

2015/11/20 08:02

そうでしたか(^^)自己解決できたようでよかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問