');
});
once('webform-preview-content', document.querySelectorAll('.form.webform-submission-form #edit-preview .webform-element')).forEach(function (target) {
var label = $(target).children('label');
$(this).wrapInner('
')
.prepend(label.remove());
});
}
/**
* IE で Slick ブロックの高さが揃わないのを修正
* @param $
*/
function fixedSlickBlockHeightForIE($){
var slick_block_ids = [
'slick-views-recommend-block-1-1',// 求人詳細「あなたにおすすめの求人」ブロック
'slick-views-directory-new-arrival-job-embed-1-2',// カテゴリトップ「新着求人」ブロック
'slick-views-recently-visited-job-block-1-3',// 検索一覧の「前回見た求人」ブロック
'slick-views-recently-visited-job-block-1-4'// カテゴリトップの「前回見た求人」ブロック
];
$.each(slick_block_ids, function() {
if ($('#' + this).children().length > 1) {
// slickboxのDOM取得
var slickBox = document.getElementById(this);
// slickboxの高さ取得
var slickBoxHeight = slickBox.clientHeight;
var slickContent = slickBox['children'][0]['children'][0]['children'][0]['childNodes'];
for (var iii = 0; iii < slickContent.length; iii++) {
slickContent[iii].style.height = slickBoxHeight + "px";
}
}
});
}
/**
* グローバルメニューのスマホ動作
* @param $
*/
function globalMenu($){
if($(window).width()<=927){//927px以下の処理
//header の a を無効
var $head = $('header .menu-item--expanded > a');
$head.off('click.menu_slide').on('click.menu_slide', function () {
$(this).next().stop(true, false).slideToggle();
$(this).toggleClass('active');
return false;
});
if (NAVIGATION_TYPE !== 'back_forward') $head.next().hide();
//a 親メニューのリンクを追加
$('#block-dsp-main-menu ul.menu-child').each(function() {
if (!$(this).children('li:first-child').hasClass('parent-link')) {
$(this).prepend('');
var parent_text = $(this).prev('a').text() + 'トップ';
$(this).prev('a').clone().text(parent_text).prependTo($(this).children('li:first-child'));
}
});
// メインメニュー、DSPアカウントメニューのスマホ表示
if ($('#block-dsp-account ul.menu li:first-child a').hasClass('dsp-menu-keep')) {
$('#block-dsp-account ul.menu li a.dsp-menu-keep').parent('li').prependTo('#block-dsp-main-menu > > ul.menu');
//a バッジをハンバーガーメニューに表示
show_badge_in_humberger_menu($);
// ハンバーガーメニュー開閉時
$('#block-dsp-main-menu > label.l-nav__checkbox--open, #block-dsp-main-menu > label.l-nav__checkbox--close').click(function() {
if ($('#block-dsp-main-menu > > ul.menu').is(':hidden')) {
$('.bookmark-count-badge').appendTo('#block-dsp-main-menu > > ul.menu a.dsp-menu-keep');
}
else {
$('.bookmark-count-badge').appendTo('#block-dsp-main-menu .l-nav__checkbox--open');// メインナビゲーションが閉じているときはハンバーガーメニューに表示
}
});
}
} else {//928px以上の処理
//「header の a を無効」を無効に
$('header .menu-item--expanded > a').off('click.menu_slide');
// メインメニュー、DSPアカウントメニューのスマホ表示
if ($('#block-dsp-main-menu > > ul.menu li:first-child a').hasClass('dsp-menu-keep')) {
badge_dsp_main_menu_default($);
$('#block-dsp-main-menu ul.menu li a.dsp-menu-keep').parent('li').prependTo('#block-dsp-account ul.menu');
}
}
if($(window).width()<=768){//768px以下の処理
//footer のスマホ用の動作
var $foot = $('.menu-item span');
$foot.off('click.footer_slide').on('click.footer_slide', function(){
var frame = setInterval(function () {
$(window).trigger('scroll');
}, 4);
$(this).next().stop(true, false).slideToggle(function () {
clearInterval(frame);
});
$(this).toggleClass("active");
});
if (NAVIGATION_TYPE !== 'back_forward') $foot.next().hide();
$('#block-directory-interest .menu-item span').off('click.footer_slide').next().show();
} else {//769px以上の処理
//「footer のスマホ用の動作」を無効に
$('.menu-item span').off('click.footer_slide').next().show();
}
}
/**
* a バッジをハンバーガーメニューに表示
* @param $
*/
function show_badge_in_humberger_menu($) {
if ($('#block-dsp-main-menu > > ul.menu').is(':hidden')) {
$('.bookmark-count-badge').appendTo('#block-dsp-main-menu .l-nav__checkbox--open');// メインナビゲーションが閉じているときはハンバーガーメニューに表示
} else {
$('.bookmark-count-badge').insertAfter('#block-dsp-main-menu > > ul.menu a.dsp-menu-keep');
}
}
/**
* a メインナビゲーションのバッジを所定の位置に戻す
* @param $
*/
function badge_dsp_main_menu_default($) {
if ($('#block-dsp-main-menu .l-nav__checkbox--open').children('.bookmark-count-badge').length) {
$('.bookmark-count-badge').insertAfter('#block-dsp-main-menu > > ul.menu a.dsp-menu-keep');
}
}
/**
* パラグラフのアコーディオン動作
* @param $
*/
function actionAccordionForParagraph($){
$(".path-node .paragraph--type-accordion h3").on("click", function() {
$(this).next().stop(true, false).slideToggle();
$(this).toggleClass("open");
}).next().removeClass("open");
}
/**
* リンクボタン 強調ボタン(大)
* @param $
*/
function addEmphasisClassForParagraph($){
$('.paragraph--type-link-button .strong_big .button-wrapper').wrap('
');
$('.paragraph--type-link-button .strong_big .button-wrapper > a').wrapInner('
');
}
/**
* パラグラフのHTMLを調整
* @param $
*/
function adjustParagraphHtml($){
//求人詳細 子の求人が気になったら 無料登録
$('.page-node-type-job .paragraph--type-text .strong_big .button-wrapper > a').wrapInner('
');
//求人詳細 子の求人が気になったら ログイン
$('.page-node-type-job .paragraph--type-text .strong .button-wrapper > a').wrapInner('
');
}
/**
* スマホ時「選択してください」を消す
* @param $(jQuery)
* @since 2022-12-18
*/
function replaceEditFieldJobPlaceTarget($) {
var $target = $('#edit-field-job-type-category-target-id-deco .selected, #edit-field-job-place-target-id-deco .selected');
if (!$target.length) return;
$target.each(function() {
var text = $(this).html().replace(/選択してください/, '');
if ($(window).width() < 769) {
$(this).html(text);
} else {
$(this).html(text + '選択してください');
}
});
}
/**
* トップページ CVボタンコントロール
* @param $(jQuery)
* @since 2022-12-19
*/
function ctrlBlockSPBottomCV($) {
var $target = $('#block-sp-bottom-cv .c-bottom-cv-button');
if (!$('.path-frontpage').length || !$target.length) return;
$(window).on('scroll', function() {
var position = 540;
var isActive = $(window).scrollTop() >= position;
$target.toggleClass('is-active-home', isActive);
});
}
/**
* ページトップ
* @param $
*/
function pageTop($){
var $window = $(window),
$document = $(document),
$footer = $('footer'),
$topBtn = $('#page-top'),
footBottomMargin = 0,
footBottomFixedMargin = 0,
isJobSearch = (/^\/job\/?$/.test(document.location.pathname)),
visiblePosition = $window.width() > 769 ? 100 : 540,
topBtnShowFlag = ($window.scrollTop() > 100);
function topBtnClickFunc () {
$topBtn.one('click', function () {
$('body,html').stop().animate({ // animateが重なっていたのでstopを追加 2022-12-19
scrollTop: 0,
}, 500, topBtnClickFunc);
});
}
function topBtnFloatingFunc () {
var scrollHeight = $document.height(); //ドキュメントの高さ
var scrollPosition = $window.height() + $window.scrollTop(); //現在地
var footHeight = $footer.innerHeight(); //footerの高さ(=止めたい位置)
if (scrollHeight - scrollPosition <= footHeight) { //ドキュメントの高さと現在地の差がfooterの高さ以下になったら
$topBtn.css({
position: 'absolute', //pisitionをabsolute(親:wrapperからの絶対値)に変更
bottom: footHeight + footBottomMargin, //下からfooterの高さ + 10px上げた位置に配置
});
} else { //それ以外の場合は
$topBtn.css({
position: 'fixed', //固定表示
bottom: footBottomFixedMargin,
});
}
}
$(document).ready( function () {
topBtnClickFunc(); //TOPへ戻るボタン連打対策
$topBtn.hide();
});
$window.on({
'load resize': function () {
topBtnShowFlag = ($window.scrollTop() > visiblePosition);
$topBtn.toggle(topBtnShowFlag);
if ($window.width() >= 769) { //769px以上の処理
footBottomMargin = footBottomFixedMargin = 10;
} else { //769px未満の処理
if($('body.hidden_sp_bottom_cv')) {
footBottomMargin = footBottomFixedMargin = 9;
if (isJobSearch) footBottomFixedMargin += 46; //「検索条件を変更する」の高さを含める
}else{
footBottomMargin = footBottomFixedMargin = 9 + 71;
if (isJobSearch) footBottomFixedMargin += 46 - 71; //「検索条件を変更する」の高さを含める
}
}
topBtnFloatingFunc();
},
'scroll': function () {
//TOPへ戻るボタンのチラつき対策
if ($window.scrollTop() > visiblePosition) {
if (!topBtnShowFlag) {
$topBtn.fadeIn(function () {
topBtnShowFlag = true;
});
}
} else {
if (topBtnShowFlag) {
$topBtn.fadeOut(function () {
topBtnShowFlag = false;
});
}
}
topBtnFloatingFunc();
},
});
}
function visibleSPCVButton($){
if($('body.hidden_sp_bottom_cv').length > 0){
$('.c-bottom-cv-button').hide();
}
}
(function($, Drupal, once) {
Drupal.behaviors.dsp = {
attach: function(context, settings) {
// ここにJavaScriptを追加
// サイドカラムあり/なしの判別
checkForSideColumn($, context);
// ページ内リンクのとび先をヘッダ固定分修正
adjustLinkTargetForFixedHeader($);
// 「求人情報」一覧ページ途中の、「注目企業の求人」ブロック
addTextToFeaturedJobBlock($);
// 求人詳細の表示調整
adjustJobDetailDisplay($);
// 「画像」キャプションが無い場合も
が出ている個所があるので、出ないように。
fixImageWithoutCaption($);
// Webform プレビュー調整
adjustWebformPreview($);
}
}
//TOPへ戻るボタン
pageTop($);
$(document).ready( function () {
// IE で Slick ブロックの高さが揃わないのを修正
fixedSlickBlockHeightForIE($);
// a パラグラフのアコーディオン
actionAccordionForParagraph($);
// リンクボタン 強調ボタン(大)
addEmphasisClassForParagraph($);
// パラグラフのHTMLを調整
adjustParagraphHtml($);
// 下部固定CVボタンの出し分け
visibleSPCVButton($);
});
$(window).on('load resize', function() {
// グローバルメニュー
globalMenu($)
});
// スマホ こだわり条件、サマリークローズ
$(window).on('load',function (){
if($(window).width() < 769){
$('#block-job-front-block #edit-container-container-4').removeAttr('open');
replaceEditFieldJobPlaceTarget($);
}
})
$(window).on('resize', function (){
replaceEditFieldJobPlaceTarget($);
})
// トップページ CVボタンコントロール
ctrlBlockSPBottomCV($)
})(jQuery, Drupal);