/*! * Stickyfill -- `position: sticky` polyfill * v. 1.1.4 | https://github.com/wilddeer/stickyfill * Copyright Oleg Korsunsky | http://wd.dizaina.net/ * * MIT License */ !function(a,b){function c(){y=D=z=A=B=C=K}function d(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])}function e(a){return parseFloat(a)||0}function f(){F={top:b.pageYOffset,left:b.pageXOffset}}function g(){return b.pageXOffset!=F.left?(f(),void z()):void(b.pageYOffset!=F.top&&(f(),i()))}function h(a){setTimeout(function(){b.pageYOffset!=F.top&&(F.top=b.pageYOffset,i())},0)}function i(){for(var a=H.length-1;a>=0;a--)j(H[a])}function j(a){if(a.inited){var b=F.top<=a.limit.start?0:F.top>=a.limit.end?2:1;a.mode!=b&&p(a,b)}}function k(){for(var a=H.length-1;a>=0;a--)if(H[a].inited){var b=Math.abs(t(H[a].clone)-H[a].docOffsetTop),c=Math.abs(H[a].parent.node.offsetHeight-H[a].parent.height);if(b>=2||c>=2)return!1}return!0}function l(a){isNaN(parseFloat(a.computed.top))||a.isCell||"none"==a.computed.display||(a.inited=!0,a.clone||q(a),"absolute"!=a.parent.computed.position&&"relative"!=a.parent.computed.position&&(a.parent.node.style.position="relative"),j(a),a.parent.height=a.parent.node.offsetHeight,a.docOffsetTop=t(a.clone))}function m(a){var b=!0;a.clone&&r(a),d(a.node.style,a.css);for(var c=H.length-1;c>=0;c--)if(H[c].node!==a.node&&H[c].parent.node===a.parent.node){b=!1;break}b&&(a.parent.node.style.position=a.parent.css.position),a.mode=-1}function n(){for(var a=H.length-1;a>=0;a--)l(H[a])}function o(){for(var a=H.length-1;a>=0;a--)m(H[a])}function p(a,b){var c=a.node.style;switch(b){case 0:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top=a.offset.top+"px",c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 1:c.position="fixed",c.left=a.box.left+"px",c.right=a.box.right+"px",c.top=a.css.top,c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 2:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top="auto",c.bottom=0,c.width="auto",c.marginLeft=0,c.marginRight=0}a.mode=b}function q(a){a.clone=document.createElement("div");var b=a.node.nextSibling||a.node,c=a.clone.style;c.height=a.height+"px",c.width=a.width+"px",c.marginTop=a.computed.marginTop,c.marginBottom=a.computed.marginBottom,c.marginLeft=a.computed.marginLeft,c.marginRight=a.computed.marginRight,c.padding=c.border=c.borderSpacing=0,c.fontSize="1em",c.position="static",c.cssFloat=a.computed.cssFloat,a.node.parentNode.insertBefore(a.clone,b)}function r(a){a.clone.parentNode.removeChild(a.clone),a.clone=void 0}function s(a){var b=getComputedStyle(a),c=a.parentNode,d=getComputedStyle(c),f=a.style.position;a.style.position="relative";var g={top:b.top,marginTop:b.marginTop,marginBottom:b.marginBottom,marginLeft:b.marginLeft,marginRight:b.marginRight,cssFloat:b.cssFloat,display:b.display},h={top:e(b.top),marginBottom:e(b.marginBottom),paddingLeft:e(b.paddingLeft),paddingRight:e(b.paddingRight),borderLeftWidth:e(b.borderLeftWidth),borderRightWidth:e(b.borderRightWidth)};a.style.position=f;var i={position:a.style.position,top:a.style.top,bottom:a.style.bottom,left:a.style.left,right:a.style.right,width:a.style.width,marginTop:a.style.marginTop,marginLeft:a.style.marginLeft,marginRight:a.style.marginRight},j=u(a),k=u(c),l={node:c,css:{position:c.style.position},computed:{position:d.position},numeric:{borderLeftWidth:e(d.borderLeftWidth),borderRightWidth:e(d.borderRightWidth),borderTopWidth:e(d.borderTopWidth),borderBottomWidth:e(d.borderBottomWidth)}},m={node:a,box:{left:j.win.left,right:J.clientWidth-j.win.right},offset:{top:j.win.top-k.win.top-l.numeric.borderTopWidth,left:j.win.left-k.win.left-l.numeric.borderLeftWidth,right:-j.win.right+k.win.right-l.numeric.borderRightWidth},css:i,isCell:"table-cell"==b.display,computed:g,numeric:h,width:j.win.right-j.win.left,height:j.win.bottom-j.win.top,mode:-1,inited:!1,parent:l,limit:{start:j.doc.top-h.top,end:k.doc.top+c.offsetHeight-l.numeric.borderBottomWidth-a.offsetHeight-h.top-h.marginBottom}};return m}function t(a){for(var b=0;a;)b+=a.offsetTop,a=a.offsetParent;return b}function u(a){var c=a.getBoundingClientRect();return{doc:{top:c.top+b.pageYOffset,left:c.left+b.pageXOffset},win:c}}function v(){G=setInterval(function(){!k()&&z()},500)}function w(){clearInterval(G)}function x(){I&&(document[L]?w():v())}function y(){I||(f(),n(),b.addEventListener("scroll",g),b.addEventListener("wheel",h),b.addEventListener("resize",z),b.addEventListener("orientationchange",z),a.addEventListener(M,x),v(),I=!0)}function z(){if(I){o();for(var a=H.length-1;a>=0;a--)H[a]=s(H[a].node);n()}}function A(){b.removeEventListener("scroll",g),b.removeEventListener("wheel",h),b.removeEventListener("resize",z),b.removeEventListener("orientationchange",z),a.removeEventListener(M,x),w(),I=!1}function B(){A(),o()}function C(){for(B();H.length;)H.pop()}function D(a){for(var b=H.length-1;b>=0;b--)if(H[b].node===a)return;var c=s(a);H.push(c),I?l(c):y()}function E(a){for(var b=H.length-1;b>=0;b--)H[b].node===a&&(m(H[b]),H.splice(b,1))}var F,G,H=[],I=!1,J=a.documentElement,K=function(){},L="hidden",M="visibilitychange";void 0!==a.webkitHidden&&(L="webkitHidden",M="webkitvisibilitychange"),b.getComputedStyle||c();for(var N=["","-webkit-","-moz-","-ms-"],O=document.createElement("div"),P=N.length-1;P>=0;P--){try{O.style.position=N[P]+"sticky"}catch(Q){}""!=O.style.position&&c()}f(),b.Stickyfill={stickies:H,add:D,remove:E,init:y,rebuild:z,pause:A,stop:B,kill:C}}(document,window),window.jQuery&&!function($){$.fn.Stickyfill=function(a){return this.each(function(){Stickyfill.add(this)}),this}}(window.jQuery); /* ポリフィル */ /** * String.prototype.startsWith * * ECMAScript 6: for for Safari (8), IE 9 - 11 */ if (!String.prototype.startsWith) { String.prototype.startsWith = function(searchString, position) { position = position || 0; return this.lastIndexOf(searchString, position) === position; }; } /** * Array.prototype.includes() * * ECMAScript 7: for Safari 8, Edge, IE 9 - 11 */ if (![].includes) { Array.prototype.includes = function(searchElement /*, fromIndex*/ ) { 'use strict'; var O = Object(this); var len = parseInt(O.length) || 0; if (len === 0) { return false; } var n = parseInt(arguments[1]) || 0; var k; if (n >= 0) { k = n; } else { k = len + n; if (k < 0) {k = 0;} } var currentElement; while (k < len) { currentElement = O[k]; if (searchElement === currentElement || (searchElement !== searchElement && currentElement !== currentElement)) { return true; } k++; } return false; }; } /** * Element.remove() * * DOM4: for IE 9 - 11 */ if ('Element' in self && !Element.prototype.remove) { Element.prototype.remove = function() { var parentNode = this.parentNode; if (parentNode) { parentNode.removeChild(this); } }; } /** * Element.closest() * * Living Standard: for Safari 8, Edge, IE 9 - 11 */ if ('Element' in self && !Element.prototype.closest) { Element.prototype.closest = function(selector) { var node = this.parentNode; if ('matches' in this) { // Safari 7.1 - 8, Android 5 while (node !== null) { if (node.matches(selector)) { return node; } node = node.parentNode; } } else if ('webkitMatchesSelector' in this) { // Safari 5 - 7, Android 4.4 while (node !== null) { if (node.webkitMatchesSelector(selector)) { return node; } node = node.parentNode; } } else if ('msMatchesSelector' in this) { // IE 9 - 11 while (node !== null) { if ('msMatchesSelector' in node && node.msMatchesSelector(selector)) { return node; } node = node.parentNode; } } return null; }; } /** * element * * HTML: for IE 11 */ if (window.HTMLPictureElement === undefined) { (function() { /** * https://scottjehl.github.io/picturefill/ */ var xhr = new XMLHttpRequest(); xhr.open('https://www.nipponsteel.com/en/product/GET', 'https://www.nipponsteel.com/product/js_v3/lib/picturefill.min.js', false); xhr.send(null); var xhrStatus = xhr.status; if (xhrStatus === 200 || xhrStatus === 304) { eval(xhr.responseText); } })(); } var NSSMC = { /** * ロードイベントを登録する * * @param {function} func 実行される関数 * * @version 1.0.1 2015-06-25 Strictモード化 */ addEventLoad: function(func) { 'use strict'; var load = false; try { document.addEventListener('DOMContentLoaded', function() { func(); load = true; }, false); window.addEventListener('load', function() { if (!load) { func(); } }, false); } catch(e) { window.attachEvent('onload', function(ev) { func.call(this, ev); }); } }, /** * アニメーションを行なう * * @param {string} type `hide`, `show` * @param {object} targetElement 対象要素 * @param {number} duration アニメーションに掛かる時間(秒) * * @version 2.0.0 2016-11-11 display: none 設定は transitionend イベントを検知して実行するように変更 */ animationToggle: function(type, targetElement, duration) { 'use strict'; if (targetElement.dataset.toggle === undefined) { /* 初期設定 */ targetElement.style.overflow = 'hidden'; targetElement.style.transition = 'height ' + duration + 's'; targetElement.addEventListener('transitionend', function() { var self = this; if (self.dataset.toggle === 'hide') { self.style.display = 'none'; } }); } targetElement.dataset.toggle = type; switch (type) { case 'hide': targetElement.style.height = '0'; break; case 'show': targetElement.style.display = ''; targetElement.style.height = targetElement.scrollHeight + 'px'; break; } }, /** * トグル * * *
* toggleコンテンツエリア * *
* * @param {string} toggleCtrlSelector トグルボタン要素のセレクター文字列 * @param {string} toggleContentClassName トグルエリア要素のクラス名 * @param {number} animationDuration アニメーションに掛かる時間(秒) * @param {string} toggleCloseButtonClassName トグルエリア内の閉じるボタンのクラス名(閉じるボタンが存在しない場合は指定しない) * * @version 3.1.1 2016-12-15 トグルが入れ子になっていたときの動作バグ修正 */ setToggle: function(toggleCtrlSelector, toggleContentClassName, animationDuration, toggleCloseButtonClassName) { 'use strict'; var self = this; // フォーカス可能な要素のセレクター文字列 var FOCUSABLE_ELEMENT_SELECTORS = 'a[href], input:not([type="hidden"]), button, select, textarea'; /** * ボタン内の表示を切り替える * * @param {object} toggleCtrlButtonElement トグルボタン要素 */ var buttonSwich = function(toggleCtrlButtonElement) { var buttonSwichValue = toggleCtrlButtonElement.dataset.buttonSwich; if (buttonSwichValue !== undefined) { var nowButtonHTML = toggleCtrlButtonElement.innerHTML; toggleCtrlButtonElement.innerHTML = buttonSwichValue; toggleCtrlButtonElement.dataset.buttonSwich = nowButtonHTML; } }; /** * トグルを表示する * * @param {object} toggleCtrlButtonElement トグルボタン要素 * @param {object} toggleContentElement トグルエリア要素 */ var show = function(toggleCtrlButtonElement, toggleContentElement) { toggleCtrlButtonElement.setAttribute('aria-expanded', 'true'); toggleCtrlButtonElement.setAttribute('aria-pressed', 'true'); toggleContentElement.setAttribute('aria-expanded', 'true'); if (toggleContentElement.getElementsByClassName(toggleContentClassName).length === 0) { self.animationToggle('show', toggleContentElement, animationDuration); } else { // トグルモジュールが入れ子になっている場合(transition: height によるアニメーションは効かなくなる) toggleContentElement.style.overflow = 'hidden'; toggleContentElement.style.height = 'auto'; } var focusElements = toggleContentElement.querySelectorAll(FOCUSABLE_ELEMENT_SELECTORS); // フォーカス可能な要素 for (var j = 0, lenj = focusElements.length; j < lenj; j++) { focusElements[j].tabIndex = 0; } }; /** * トグルを非表示にする * * @param {object} toggleCtrlButtonElement トグルボタン要素 * @param {object} toggleContentElement トグルエリア要素 */ var hide = function(toggleCtrlButtonElement, toggleContentElement) { toggleCtrlButtonElement.setAttribute('aria-expanded', 'false'); toggleCtrlButtonElement.setAttribute('aria-pressed', 'false'); toggleContentElement.setAttribute('aria-expanded', 'false'); if (toggleContentElement.getElementsByClassName(toggleContentClassName).length === 0) { self.animationToggle('hide', toggleContentElement, animationDuration); } else { // トグルモジュールが入れ子になっている場合(transition: height によるアニメーションは効かなくなる) toggleContentElement.style.overflow = 'hidden'; toggleContentElement.style.height = '0'; } var focusElements = toggleContentElement.querySelectorAll(FOCUSABLE_ELEMENT_SELECTORS); // フォーカス可能な要素 for (var i = 0, leni = focusElements.length; i < leni; i++) { focusElements[i].tabIndex = -1; } }; /** * トグルの開閉処理を実行する * * @param {object} toggleCtrlButton トグルボタン要素 */ var exec = function(toggleCtrlButtonElement) { var toggleContentElementId = toggleCtrlButtonElement.getAttribute('aria-controls'); var toggleContentElement = document.getElementById(toggleContentElementId); if (toggleCtrlButtonElement.getAttribute('aria-expanded') === 'true') { hide(toggleCtrlButtonElement, toggleContentElement); } else { show(toggleCtrlButtonElement, toggleContentElement); } buttonSwich(toggleCtrlButtonElement); }; var searchToggleContentElement = function(toggleCtrlButtonElement) { var toggleContentId = toggleCtrlButtonElement.getAttribute('aria-controls'); var toggleContentElement = document.getElementById(toggleContentId); if (toggleContentElement === null) { console.error('ID: ' + toggleContentId + ' is NULL.'); } return toggleContentElement; }; var toggleCtrlButtonElements = document.querySelectorAll(toggleCtrlSelector); for (var i = 0, leni = toggleCtrlButtonElements.length; i < leni; i++) { var toggleCtrlButtonElement = toggleCtrlButtonElements[i]; var toggleContentElement = searchToggleContentElement(toggleCtrlButtonElement); if (toggleContentElement !== null) { var toggleCtrlButtonEnterRecognition = true; // トグルボタンが Enter キー操作によるクリックイベントを認識するか if (toggleCtrlButtonElement.tagName.toLowerCase() === 'a' && toggleCtrlButtonElement.hasAttribute('href')) { /* トグルボタンが a[href] だった場合はボタン扱いにする */ toggleCtrlButtonElement.removeAttribute('href'); toggleCtrlButtonElement.tabIndex = 0; toggleCtrlButtonElement.setAttribute('role', 'button'); toggleCtrlButtonEnterRecognition = false; } if (toggleCtrlButtonElement.getAttribute('aria-expanded') === 'false') { hide(toggleCtrlButtonElement, toggleContentElement); } else { show(toggleCtrlButtonElement, toggleContentElement); } toggleCtrlButtonElement.addEventListener('click', function() { exec(this); }); if (!toggleCtrlButtonEnterRecognition) { toggleCtrlButtonElement.addEventListener('keydown', function(ev) { if (ev.key === 'Enter' || ev.keyCode === 13) { exec(this); } }); } /* CSS Will Change */ toggleCtrlButtonElement.addEventListener('mouseover', function() { searchToggleContentElement(this).style.willChange = 'height'; }); toggleCtrlButtonElement.addEventListener('mouseout', function() { searchToggleContentElement(this).style.willChange = ''; }); } } /* トグルエリア内の閉じるボタン */ if (toggleCloseButtonClassName !== undefined) { var toggleContentElements = document.getElementsByClassName(toggleContentClassName); for (var j = 0, lenj = toggleContentElements.length; j < lenj; j++) { var toggleContentCloseButtonElements = toggleContentElements[j].getElementsByClassName(toggleCloseButtonClassName); for (var k = 0, lenk = toggleContentCloseButtonElements.length; k < lenk; k++) { toggleContentCloseButtonElements[k].addEventListener('click', function() { var toggleContentElement = searchToggleContentElement(this); if (toggleContentElement !== null) { var toggleCtrlButtonElement = document.querySelector('[aria-controls=' + toggleContentElement.id + ']'); hide(toggleCtrlButtonElement, toggleContentElement); buttonSwich(toggleCtrlButtonElement); toggleCtrlButtonElement.focus(); } }); } } } /* ウィンドウサイズを変更した時 */ window.addEventListener('resize', function() { setTimeout(function() { var toggleOpenContentElements = document.querySelectorAll('.' + toggleContentClassName + '[aria-expanded="true"]'); for (var i = 0, leni = toggleOpenContentElements.length; i < leni; i++) { var toggleOpenContentElement = toggleOpenContentElements[i]; if (toggleOpenContentElement.getElementsByClassName(toggleContentClassName).length === 0) { toggleOpenContentElement.style.height = toggleOpenContentElement.scrollHeight + 'px'; } } }, 100); }); } }; (function(window, document) { "use strict"; if (!("querySelector" in document)) { return; } NSSMC.addEventLoad(function() { /* トグル */ NSSMC.setToggle('.js_toggle_ctrl', 'js_toggle_content', 0.25); }); (function() { /* position: sticky */ var stickyElements = document.querySelectorAll('.v3-position-sticky, .v3-nav-1'); for (var i = 0, leni = stickyElements.length; i < leni; i++) { Stickyfill.add(stickyElements[i]); } })(); (function() { var exec = function() { var catalogCtrlElements = document.querySelectorAll('.v3-catalog-ctrl [type="button"]'); for (var i = 0, leni = catalogCtrlElements.length; i < leni; i++) { var catalogCtrlElement = catalogCtrlElements[i]; document.getElementById(catalogCtrlElement.getAttribute('aria-controls')).querySelector('.v3-catalog-detail').style.width = document.defaultView.getComputedStyle(catalogCtrlElement, '').width; } }; exec(); window.addEventListener('resize', function() { exec(); }); })(); (function() { var INTERVAL = 5000; var ANIMATION_DURATION = 600; var HIDDEN_CLASS_NAME = 'news-list-hidden'; var newsListElements = document.querySelectorAll(".v3-news-list > li"); var newsListElementsLength = newsListElements.length; if (newsListElementsLength > 1) { for (var i = 1; i < newsListElementsLength; i++) { var newsListElement = newsListElements[i]; newsListElement.classList.add(HIDDEN_CLASS_NAME); newsListElement.style.display = 'none'; } var execChange = function(nowDisplayedNo) { newsListElements[nowDisplayedNo].classList.add(HIDDEN_CLASS_NAME); var nextDisplayedNo; if (nowDisplayedNo === newsListElementsLength - 1) { nextDisplayedNo = 0; } else { nextDisplayedNo = nowDisplayedNo + 1; } setTimeout(function() { newsListElements[nowDisplayedNo].style.display = 'none'; newsListElements[nextDisplayedNo].classList.remove(HIDDEN_CLASS_NAME); newsListElements[nextDisplayedNo].style.display = ''; }, ANIMATION_DURATION); return nextDisplayedNo; }; /* 自動切り替え */ setTimeout(function() { var nowDisplayedNo = 0; var autoChange = function() { nowDisplayedNo = execChange(nowDisplayedNo); setTimeout(autoChange, INTERVAL); }; autoChange(); }, INTERVAL - ANIMATION_DURATION); } })(); })(this, document); //カタログダウンロードページ、ソート機能 (function ($) { 'use strict'; if (!$) { return; } if (!$('.v3-catalog-list-wrap')[0]) { return; } var SORT = { init: function () { this.setParameters(); this.bineEvent(); }, setParameters: function () { this.$typeListBtn = $('.type-kind').find('li').find('button'); this.$typeFiledList = $('.type-field').find('li'); this.$typeFiledBtn = this.$typeFiledList.find('button'); this.$productList = $('.v3-product-catalog-list').find('.catalog'); this.dataKind = ('data-kind'); this.dataTypes = ('data-types'); this.$dispCatalogLists = $('.v3-product-catalog-list').find('.catalog'); this.holdFlag = false; }, bineEvent: function () { var _self = this; _self.$typeListBtn.on('click', function () { var btn = $(this); _self.$typeListBtn.prop('disabled', false); btn.prop('disabled', true); _self.$typeFiledBtn.prop('disabled', false); _self.$typeFiledBtn.eq(0).prop('disabled', true); btn.each(function () { _self.$typeFiledList.css('display', 'none'); _self.$productList.css('display', 'none'); var selectType = $(this).attr('data-filter-kind'); _self.decisionVariety(selectType); }); }); _self.$typeFiledBtn.on('click', function () { var btn = $(this); _self.$productList.css('display', 'none'); _self.$typeFiledBtn.prop('disabled', false); btn.prop('disabled', true); var selectField = $(this).attr('data-filter-field'); _self.decisionField(selectField); }); }, requiredCleaning:function(){ this.catalogData = []; this.catalogDisplayNumber = []; }, decisionVariety: function (selectType) { this.requiredCleaning(); this.fieldData = []; this.fieldDisplayNumber = []; if (selectType === undefined) { for (var i = 0; i < this.$typeFiledList.length; i++) { this.fieldDisplayNumber.push(i); } for (var i = 0; i < this.$productList.length; i++) { this.catalogDisplayNumber.push(i); } } this.splitWord(this.$typeFiledBtn, this.fieldData, this.dataKind); this.splitWord(this.$productList, this.catalogData, this.dataKind); this.comparison(this.$typeFiledList, this.fieldData, selectType, this.fieldDisplayNumber); this.holdFlag = true; this.comparison(this.$productList, this.catalogData, selectType, this.catalogDisplayNumber); }, decisionField: function (selectField) { this.requiredCleaning(); if (selectField === undefined) { for (var i = 0; i < this.$dispCatalogLists.length; i++) { this.catalogDisplayNumber.push(i); } this.dispList(this.$dispCatalogLists, this.catalogDisplayNumber) } else { this.splitWord(this.$dispCatalogLists, this.catalogData, this.dataTypes); this.comparison(this.$dispCatalogLists, this.catalogData, selectField, this.catalogDisplayNumber) } }, splitWord: function (lengthandList, dataArray, checkDataType) { for (var i = 0; i < lengthandList.length; i++) { dataArray.push(lengthandList.eq(i).attr(checkDataType).split(' ')); } }, comparison: function (lengthCheck, dataArray, userSelect, dispArray) { for (var i = 0; i < lengthCheck.length; i++) { for (var j = 0; j < dataArray[i].length; j++) { if (userSelect === dataArray[i][j]) { dispArray.push(i); } } } this.dispList(lengthCheck, dispArray) }, dispList: function (list, dispNum) { for (var i = 0; i < dispNum.length; i++) { list.eq(dispNum[i]).css('display', 'block'); } if (this.holdFlag === true) { this.$dispCatalogLists = $('.v3-product-catalog-list').find('.catalog:visible'); } this.holdFlag = false; }, }; $(function () { SORT.init(); }); }(window.jQuery));