/** * @fileOverview 商品詳細・レビュー一覧ページのネタバレエリアの表示・非表示処理用 * @name EtcReviewToggleAreaPc.js */ jQuery.noConflict(); jQuery(function ($) { var EtcReviewToggleAreaPc = { collapsedHeight: 40, //ネタバレエリア(初期表示時)の高さ textMargin: 10, //レビュー文章のpタグにかかっているmargin-bottomの値 toggleDistance: 5, //文章2行以下のネタバレエリアのトグルアニメをどの程度動かすか調整する変数 toggleButonHtml: '
続きを読む
', init: function (nodes) { let eventTargets = nodes; for (let i = 0; i < eventTargets.length; i++) { if (Math.trunc($(eventTargets[i]).height()) >= EtcReviewToggleAreaPc.collapsedHeight + EtcReviewToggleAreaPc.textMargin) { // 文章が2行以上であればreadmore.jsのイベント付与 $(eventTargets[i]).readmore({ speed: 400, collapsedHeight: EtcReviewToggleAreaPc.collapsedHeight, heightMargin: 0, moreLink: EtcReviewToggleAreaPc.toggleButonHtml, lessLink: 'Close', afterToggle: function (trigger, element, expanded) { $(trigger).remove(); if ($(element).hasClass('review-hidden-area')) { $(element).removeClass('review-hidden-area'); } $(element).readmore('destroy'); } }); } else { // それ以下の場合はネタバレ隠し用のclass付与 + clickイベント付与 let target = $(eventTargets[i]); let targetHeight = Math.trunc($(target).height()); targetHeight = targetHeight - EtcReviewToggleAreaPc.toggleDistance; $(target).css({ height: targetHeight + 'px' }); $(target).attr('data-not-readmore', 'true'); $(target).after(EtcReviewToggleAreaPc.toggleButonHtml); let toggleButton = $(target).closest('.stBoxReview04').find('p.stAlignCenter.stPaddingT10'); toggleButton.removeClass('stPaddingT10').addClass('stPaddingT20'); $(toggleButton).on('click', function () { let openTarget = $(this).closest('.stBoxReview04').find('[data-item-type="toggle-area"]'); let openHeight = Math.trunc($(openTarget).height()) + EtcReviewToggleAreaPc.toggleDistance; $(this).remove(); $(openTarget).removeClass('review-hidden-area'); $(openTarget).height(openHeight); }); } } } } if ($(document).find('[data-item-type="toggle-area"]').length > 0) { let target = $(document).find('[data-item-type="toggle-area"]'); EtcReviewToggleAreaPc.init(target); } $(window).on('ajaxLoad', function (e, container) { if ($(container).find('[data-item-type="toggle-area"]').length > 0) { let target = $(container).find('[data-item-type="toggle-area"]'); EtcReviewToggleAreaPc.init(target); } }); });