Ajaxベースのビューで上にスクロールの動作を無効にするにはどうすればよいですか? Javascriptを使用することをお勧めします。
公開されたフォームから検索を実行すると、スクロール動作がトリガーされます。
上記の解決策はDrupal 7.の場合です。Drupal 8では、hook_views_ajax_data_alter
は廃止され、hook_ajax_render_alter
に置き換えられました。
お探しの方のために、Drupal 8 (source here) で行う方法を示します。
function YOURMODULE_ajax_render_alter(array &$data) {
foreach ($data as $key => $command) {
if ($command['command'] === 'viewsScrollTop') {
unset($data[$key]);
break;
}
}
}
古い issue から解決策を見つけました。
スクロール動作はajaxコマンドviewsScrollTop
として追加され、hook_views_ajax_data_alter
で設定解除できます。
例
/**
* Implement hook_views_ajax_data_alter().
*/
function YOURMODULE_views_ajax_data_alter(&$commands, $view) {
// Remove scroll to top behaviour from views ajax
foreach ($commands as $key => $command) {
if ($command['command'] == 'viewsScrollTop') {
unset($commands[$key]);
break;
}
}
}