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

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

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

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

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

Q&A

解決済

1回答

2491閲覧

JQuery Mobileでウィンドウの横スクロールバーが動かない

hiro33

総合スコア15

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/12/24 11:43

前提・実現したいこと

JQuery Mobileを使用してレイアウトを整え、テーブルを作成しています。
どんなにテーブル内の文字列が長くなっても折り返さず、
横の幅をnowrapを指定して一行にして表示させています。
横に広がった分をウィンドウに横スクロールバーを表示させ、
横にスクロールをして全体を表示させたいです。

発生している問題・エラーメッセージ

上記の事柄を解決するために
over-flow:scroll でスクロールバーを表示させるところまではできたのですが、
横スクロールバーが動かせない状態になっており、
横にスクロールができないようになっております。

今回はJQuery Mobileを使用することと、
テーブルにスクロールバーを表示させてスクロールさせるのではなく
ウィンドウのスクロールバーでスクロールさせるようにしたいです。

どのように解決すればよいか、お教え願いますでしょうか。

該当のソースコード

HTML

1<!DOCTYPE html> 2<html> 3<head> 4<title>作品と冒頭</title> 5<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.css" /> 6<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 7<script src="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script> 8</head> 9<body style="overflow:scroll;"> 10<!--ページ領域--> 11<div> 12 <table> 13 <tr> 14 <th>作品</th> 15 <th>冒頭</th> 16 </tr> 17 <tr> 18 <td nowrap>雪国</td> 19 <td nowrap>国境の長いトンネルを抜けると雪国であった。夜の底が白くなった。信号所に汽車が止まった。向側の座席から娘が立って来て、島村の前のガラス窓を落した。雪の冷気が流れこんだ。娘は窓いっぱいに乗り出して、遠くへ呼ぶように、「駅長さあん、駅長さあん」明りをさげてゆっくり雪を踏んで来た男は、襟巻で鼻の上まで包み、耳に帽子の毛皮を垂れていた。</td> 20 </tr> 21 <tr> 22 <td nowrap>走れメロス</td> 23 <td nowrap>メロスは激怒した。必ず、かの邪智暴虐じゃちぼうぎゃくの王を除かなければならぬと決意した。メロスには政治がわからぬ。メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。けれども邪悪に対しては、人一倍に敏感であった。きょう未明メロスは村を出発し、野を越え山越え、十里はなれた此このシラクスの市にやって来た。</td> 24 </tr> 25 </table> 26</div> 27</body> 28</html> 29

試したこと

試しにJQuery Mobileを読み込まないようにすると
ウィンドウの横スクロールバーが動くようになることは確認しました。
それと、bodyタグでwidthを以下のように広く指定して確認してみると

<body style="overflow:scroll;width:3000px;"> 画面の横にはみ出た部分が描画されておらず、途中で途切れて表示されます。

補足情報

ブラウザはGoogle Chromeで確認しています。
バージョンは71.0.3578.98です。

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

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

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

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

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

guest

回答1

0

ベストアンサー

JQuery Mobileの設計思想かと思います。
スマホって縦スクロール前提で作られていて横スクロールはさせないものです(スワイプはそもそもスクロールではなく別コンテンツをスライドで持ってくるものですし)

CSSとJavaScriptのコードを読み込めばわかりますが、
CSS側で各所でoverflow:hiddenが設定されていて、JavaScript側で後付けでui-***がHTMLに付与されていっているのがわかると思います。
後付けでHTMLに付与されるのでインラインスタイルで書いてもおそらく上書きされてしまうのかと。
もしかしたら!importantつければうまくいくかもしれませんが、その後にどんな不具合があるかわからないので、よほどの理由がない限り横スクロールはやめておいたほうが良さそうです。
(それかjQueryMobile以外のフレームワークに切り替えるか)

投稿2018/12/24 19:56

m.ts10806

総合スコア80850

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

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

hiro33

2018/12/25 12:40

そうなんですね。設計思想ですか。 !importantつけてみたのですがうまくいかなかったので、 横スクロールするかどうかも含めてもう一度考えてみます。 丁寧に答えていただきありがとうございます。
m.ts10806

2018/12/25 12:51

別のやり方を検討したほうが良いでしょうね。そもそも後から書き換えているので、デベロッパーツールで見た時にインラインスタイルも消えてるかもしれません。 それだけjQueryUIに限らずフレームワークは癖があります。「できないものはできない」と踏み、似たような動きをそのフレームワークが持っているコンポーネント内で探すか、別の動きで代替するしかないですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問