スクロール付きのBOXをサイドに設置する方法

Simplicityの特徴 フォーラム テーマファイルのカスタマイズに関する質問など スクロール付きのBOXをサイドに設置する方法

  • このトピックには3件の返信、2人の参加者があり、最後にhidekichiにより11年、 5ヶ月前に更新されました。
3件の返信スレッドを表示中
  • 投稿者
    投稿
    • #18457
      sora
      ゲスト

      いつもお世話になります。
      早速ですが、サイドにウィジェット追加からテキストを使って、更新情報一覧のようなボックスを作成しようと思い、こちらのページを参考に、子テーマCSSに追加しました。

      すると、スマホでサイトを開いた際、スマホのメニューを開く動作がおかしくなってしまいました。記事はスマホでも普通に読めますし、PCでの動作ではプラウザの幅を広くしたり狭くしたりしても、まったく問題はなく表示されています。
      そのおかしなメニュー表示のままスマホを横向き回転すると、本来の表示に戻り、さらにもう半回転させて元の方向に戻した場合でも本来の表示は保たれています。
      最初にスマホのメニューボタンを押し、メニューが開いた時だけ表示がおかしいです。

      何が原因か探したところ、overflow:scroll;の1行が、スマホのメニュー開閉にも影響してしまうようです。
      overflow: auto も試してみましたが、結果はスクロールの時と同じでした。

      どのようにすれば、Simplicityで設定されているスマホメニューの開閉動作に干渉せず設定することが出来るか教えていただくことは可能でしょうか?
      今後、相互リンクのリストなどでも、スクロールBOX型のテーブルで対応したいと思っていたので、もし解決方法があれば教えていただけると非常に助かります。

      よろしくお願いいたします。

    • #18476
      アバター画像わいひら
      キーマスター

      申しわけないですが、カスタマイズによる動作不良は、こちらにソースコードもないので、わからないとしか言えないです。

      ですので、サポート対象外になっています。
      サポート対象外のもの

    • #18552
      sora
      ゲスト

      おはようございます。
      何か方法がないか、少し時間をかけて探してみようと思います。
      ありがとうございました。

    • #21632
      hidekichi
      ゲスト

      ◆モバイル表示時のメニューの開閉の仕組みについて説明しておきます。
      実際どう手を加えられたかわからないので原因までは何とも言えないのですが、メニューボタンの開閉のスクリプトを見てみると、ややこしい処理をしているようには思えないので別に原因がありそうな気もします。

      jQuery(document).ready(function() {
      //↑ドキュメントの準備ができたら
        jQuery('#mobile-menu-toggle').click(function(){
      //↑#mobile-menu-toggleをクリックした時
          header_menu = jQuery('#navi ul');
      //↑変数header_menuを#navi ulと定義
          if (header_menu.css('display') == 'none') {
      //↑もしheader_menuが表示されていない(display:noneの)場合
            //header_menu.removeClass('display-hide').addClass('display-block');
      //↑header_menuについているであろうdisplay-hide(display:none)を除去して、新たにdisplay-block(display:block)を追加する
            header_menu.slideDown();
      //↑header_menuをスライドダウンして表示
          } else{
            //header_menu.removeClass('display-block').addClass('display-hide');
            header_menu.slideUp();
      //↑それ以外の時(表示されている時)は、#mobile-menu-toggleをクリックすればスライドアップして元に戻す
          };
        });
      
      });

      つまりjQueryの部分では、#mobile-menu-toggleに対してclassを除去するか追加するかで開閉をしているということになります。メニューの表示はjQueryで変更されたclassに対してcss(mobile.css)が行っています。
      if (header_menu.css(‘display’) == ‘none’) { 」の部分は、CSS(mobile.css)で#navi ulがdisplay:noneになっており、ページを開いた時には「if (header_menu.css(‘display’) == ‘none’) { 」が「真(true)」ですから#mobile-menu-toggleをクリックすることによってdisplayがnoneからblockに変わる仕組みとなっています。またdisplayがblockからnoneに変わる仕組みとも言えます。

      おかしな表示がどういうものか、追加した「更新情報一覧のようなボックス」がどういうものかで案外答えがわかるかも知れません。
      overflowはご存じだと思いますが、いわゆる範囲からはみ出た部分の処理なので、scrollにした場合に、そのブロックにスクロールバーが出るか否かと言うだけのものだと思うのです。

      Simplicityのmobile.cssには、#navi ul li aの部分にoverflow:hidden;が入っています。リスト表示のaつまりリンクが範囲からはみ出た時には「はみ出た部分を表示しない」と言う設定なので仮に何か影響があると考えたらwidthで幅を決定すれば良いのかもなぁと思ったりも(あくまで想像ですが。

      一応自分のブラウザのiphone5エミュで見てみても質問にあるようなウィジェットを追加する前のSimplicity側には特に不備はないと思われますし、上記スクリプトの解説の通り、特別overflowをいじるだけで問題が出るのもちょっと思いつきません(classを消したり付けたりしているだけですから)。
      わいひらさんが言うようにカスタマイズ後の話なので現状では原因究明に繋がるヒントは出せませんが、概ねCSS側で何かしら起こっているように想像します。

3件の返信スレッドを表示中
  • フォーラム「テーマファイルのカスタマイズに関する質問など」には新規投稿および返信を追加できません。
スポンサーリンク
アドセンス(大)
アドセンス(大)