###前提
類似の質問に対しての回答を参考にしても解決できなかったため質問させていただきます。
参考:position:fixedしている要素内のinputにフォーカスが入ると、ページトップへスクロールしてしまう
参考:ios8でpositionfixedなheaderに付けたinputにフォーカスを当てると一番上までスクロールしてしまう
###問題
①fixedしたheaderの中にボタンを設置
②ヘッダーの高さ分下にずらし、検索フォームをfixed。通常時はdisplay:noneで隠れている
③①のボタンをクリックすると、イベントが発火し、検索フォームが表示される(jquery)
④検索フォームがフォーカスされる(アクティブになる)と画面上まで強制スクロールされる
###実装しているコード
wordpressで構築しているサイトで、下記のようなコードを実装しています。(最低限のコードだけ記載しています)
####HTML
php
1<div id="search"> 2<form role="search" method="get" id="searchform" action="<?php echo home_url(); ?>/search"> 3 <label class="hidden" for="q"> 4 <?php _e('', 'kubrick'); ?> 5 </label> 6 <input type="search" value="<?php the_search_query(); ?>" name="q" id="q" placeholder="検索ワードを入力" /> 7 <button type="submit" id="searchsubmit" alt="検索" value="<?php _e('Search', 'kubrick'); ?>"> 8 <i class="fa fa-search" aria-hidden="true"></i> 9 </button> 10</form> 11</div>
####CSS
css
1#search { 2 position: fixed; 3 left: 0; 4 right: 0; 5 top: 60px; 6 z-index: 999; 7}
####本番サイトで実装しているコードと具体的なカスタマイズ内容
参考:https://moriawase.net/fixed-header-slide-menu
###理想のサイト
下記のサイトのような挙動にできればと思っております。
特に、ノマド的節約術さんの挙動が素晴らしく、ぜひ参考にしたいと考えております。
しかし、コードを分析しても、特にそれらしいコードを見つけることができませんでした。
おそらく、jqueryで制御しているのだと思いますが。。
###お知恵を拝借したいこと
今回お知恵を拝借したいことは、画面上部にfixedされたinput要素(もしくは、fixedされた要素内のinput要素)がfocusされた時の強制スクロールを止める方法です。
冒頭に記載した参考サイトを見ても解決しないため、HTML,CSSで制御するのは難しいのではないかなと思っています。
HTML,CSS,jqueryをいじって解決できるのであれば、それが1番ですが、JSライブラリや、何かヒントになるページをご紹介いただければと思っております。
何卒よろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/28 05:53
2017/02/28 06:19
2017/02/28 08:21