サポート » インストール » ページを開いた時の表示位置

  • MW WP Formという問い合わせなどのフォームのプラグインを使ってます。
    サイトのデザインの都合上、「画面変遷時のスクロールを有効にする」にチェックを入れてます。

    これにより、ユーザーがフォーム入力して確認画面を確認後、戻るボタンで入力画面に戻っても、入力フォームのところにスクロールしてくれるわけです。

    それはいいのですが、確認画面でも同じ効果が出るため、本来は確認画面ではページのヘッダーが表示されて欲しいのですが、ページ下の方が表示されてしまいます。

    そこで確認画面だけ強制的にページのヘッダーが表示させる方法はないでしょうか?
    わずか300pxくらい上にいけばいいだけなので、300px上にスクロールさせるスクリプトとかでもいいです。

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • CG

    (@du-bist-der-lenz)

    ページ遷移後に、ヘッダー部分をスクロールさせて、本文に誘導することがユーザビリティとするテーマもあるから、その300pxにしても、一概には出来ないでしょうね。 @hachikuma さんが使用しているテーマの仕様に限ってのこととなるように思います。

    こんにちは

    私は MW WP Form を使ったことは無いですが、hachikuma さんのような方のために、「画面変遷時のスクロールを有効にする」が設定されている際にスクロールする位置をセットするフィルターが用意されているようです。

    特定のフォームの確認画面だけということで説明が難しいのですが、私が苦心したソースを貼っておきます。

    mwform_post_content_raw_ というフィルタはショートコードのコンテンツ取得時に実行されます。
    このフィルタで、現在どの画面なのか(入力なのか、確認なのか、など)を取得できますので、確認画面の場合には、スクロール位置をセットするフィルター mwform_scroll_offset_ をセットしています。

    -1000 がスクロール先と -1000px 足した位置にスクロールさせる、ということなので、300px で良ければ -300で良いですが、いっぱい設定しておいても害は無いように思います。

    mwform_post_content_raw_mw-wp-form-9 というフィルタと、mwform_scroll_offset_mw-wp-form-9というフィルタの、末尾の番号をフォームの番号と一致させれば動くと思います。

    function my_mwform_scroll_offset( $offset ){
    	return -1000;
    }
    
    function my_mwform_post_content_raw( $content, $data ){
    
    	if( 'confirm' === $data->get_post_condition()) {
    		add_filter( 'mwform_scroll_offset_mw-wp-form-9', 'my_mwform_scroll_offset' );
    	}
    	return $content;
    }
    add_filter( 'mwform_post_content_raw_mw-wp-form-9', 'my_mwform_post_content_raw', 10, 2 );
    • この返信は1 週、 6 日前に  munyagu さんが編集しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。