#前提・実現したいこと
Firefox・safari・Google Chrom・Opera・Edge らモダンブラウザでは、エラーはありませんがIEのみ、文法エラーが発生してしまいます。なので、こちらを解決したいです。
下記はエラーの原因となっている箇所です。
JavascriptError
1var sectionEl = _this.originalSection[i];
#ソースコード
Typescriot
1class ScrollHeader { 2 originalSection: NodeListOf<HTMLElement>; 3 4 constructor(){ 5 this.originalSection = document.querySelectorAll('section'); 6 } 7 8 private viewMenu() { 9 window.addEventListener('scroll', ()=> { 10 let current:any = ""; 11 for (var i = 0; i < this.originalSection.length; i++) { 12 let sectionEl = this.originalSection[i]; // ここがエラー箇所 13 let sectionTop = sectionEl.offsetTop; 14 const sectionHeight = sectionEl.clientHeight; 15 if(pageYOffset > sectionTop - sectionHeight / 3) { 16 current = sectionEl.getAttribute('id'); 17 }); 18 }); 19 } 20 } 21 22 private configure() { 23 this.viewMenu(); 24 } 25} 26 27const scrollHeader = new ScrollHeader();
下記は生成されたJavascriptです。ES5を指定して生成しています。
Javascript
1"use strict"; 2 3function ScrollHeader() { 4 this.originalSection = document.querySelectorAll('section'); 5 this.configure(); 6} 7 8ScrollHeader.prototype.viewMenu = function () { 9 var _this = this; 10 for (var i = 0; i < _this.originalSection.length; i++) { 11 var sectionEl = _this.originalSection[i]; // ここがエラー箇所 12 var sectionTop = sectionEl.offsetTop; 13 var sectionHeight = sectionEl.clientHeight; 14 if (pageYOffset > sectionTop - sectionHeight / 3) { 15 current = sectionEl.getAttribute('id'); 16 } 17 }); 18 19ScrollHeader.prototype.configure = function () { 20 this.viewMenu(); 21}; 22 return ScrollHeader; 23}()); 24var scrollHeader = new ScrollHeader();
よろしくお願いします。
あなたの回答
tips
プレビュー