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

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

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

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

2回答

1114閲覧

【Monaca】検索窓は固定化して、結果だけをスクロールしたい。

yuki-saito

総合スコア928

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

2クリップ

投稿2017/11/08 08:50

###前提・実現したいこと
MonacaにonsenUIで検索画面を作っています。
検索キーを入力するフォームがり、検索した結果がlistで出てスクロールするだけの画面なのですが
入力フォームからスクロールしてしまいます。

HTML

1<ons-page id='searchPage'> 2 <ons-toolbar> 3 <div class='center'>検索</div> 4 </ons-toolbar> 5 6 <div id='search'> 7 <ons-search-input placeholder="Search"></ons-search-input> 8 </div> 9 10 <ons-scroller id='searchScroll'> 11 <ons-list id='searchList'> 12 </ons-list> 13 </ons-scroller> 14</ons-page>

ons-scrollerons-listだけを囲んでいてons-search-inputは外にあるのですが
なぜか一緒にスクロールされてしまいます。

実際のHTMLを見てみるとpage__contentで囲われているようなので
これにスクロールが効いているのでしょうか・・・

HTML

1<ons-page id="searchPage" class="page" style="display: block;"> 2 <ons-toolbar class="toolbar"> 3 <div class="center toolbar__center toolbar__title">検索</div> 4 </ons-toolbar> 5 6 <div class="page__content"> 7 <div id="search"> 8 <ons-search-input placeholder="Search"> 9 <input type="search" class="search-input" placeholder="Search"> 10 </ons-search-input> 11 </div> 12 13 <ons-scroller id="searchScroll"> 14 <ons-list id="searchList" class="list"> 15 </ons-list> 16 </ons-scroller> 17 </div> 18</ons-page>

ons-scrollerの開始位置はons-search-inputの下から正しく始まっているので
そこだけにスクロールがあたれば実現できるのではないかと考えています。

ons-toolbarに入れるのは避けたいので
指定や階層を変えることでスクロールがons-scrollerだけに効くようにしたいです。

###試したこと
ons-toolbarに入れてしまうのは避けたい。

ons-split-viewで何かできないか・・・
→横分割の仕方が分かりませんでした。

ons-templateでうまいことできないか・・・
→無理そうでした。

page__contentsをもう1階層作ったらできるか・・・
→onsenUIで自動で入るもので入れ方が分かりませんでした。

・その他何かの部品でどうにかできないか。https://ja.onsen.io/v1/reference/javascript.html
→できそうなものは見つかりませんでした。

何かヒントだけでもいただけると大変助かります。
よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

<div class="page__content">のところも、気になるのですが、、、 ons-scroller タグの前後を、divタグで囲むのはアリですか? こんな感じで↓
<div style='height:50%; width:100%; overflow-y:scroll;'> <ons-scroller id='searchScroll'> <ons-list id='searchList'> </ons-list> </ons-scroller> </div>

私の場合、上部に検索条件入力欄、検索結果を真ん中にスクロールバー付きで表示、下部に、結果を元にした他の処理を実行するボタンという画面構成で、divタグで囲んで、高さを指定しました。
例に書いたのはパーセントですが、ピクセルでもできました。
参考まで。

投稿2017/11/08 23:54

lucky-ponta

総合スコア74

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

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

yuki-saito

2017/11/09 00:11

もちろんありです!! divを使って検索窓と結果の分割割合などを指定して早速やってみます! ありがとうございます!
yuki-saito

2017/11/09 02:37 編集

色々やってみたのですがダメで、よく見たらやはり`page__content`に`overflow:auto`がついていて、そこが範囲になっていました。 なので`ons-scroller`を外してもスクロールされていることが分かりました・・・。 `ons-page`に紐づいているものなのか分かりませんがそちらは不要なのですが そちらを無効化すると`ons-scroller`があってもスクロールが表示されなかったり ルールが良く分かりませんが仕組みは分かったので、何とかCSSをいじりまくってやってみようかと思います。苦笑
guest

0

自己解決

ons-scrollerは廃止されていたようで無意味な指定でした。
実際にはやはりpage__contentにoverflow指定がされていたので、そのCSSを無効化し
スクロールしたい領域に独自のCSSをあてて対応しました。

投稿2017/11/09 06:41

yuki-saito

総合スコア928

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問