(function () { 'use strict'; const stylesheet = document.querySelector("#stylesheet"); const toggleStylesheetLightButton = document.querySelector("#light"); const toggleStylesheetDarkButton = document.querySelector("#dark"); const navMenu = document.querySelector("#nav-menu"); navMenu.offsetTop; const mainPage = document.querySelector("#main-div"); const topBar = document.querySelector("#top-bar"); const lightDarkWarning = document.querySelector("#light-dark-warning"); const abnormalLogo = document.querySelector("#logo"); const abnormalLogoStylesheet = document.querySelector("#logo-stylesheet"); const footerAbnormal = document.querySelector("#footer-fourth"); const introScreen = document.querySelector("[data-intro-screen]"); const stylesheetSelector = document.createElement("div"); const previousStylesheet = document.createElement("div"); const menuButton = document.querySelector("#menu-button-open-close"); const navMobile = document.querySelector("#mobile-nav-menu"); const menuBar = document.querySelector("#mobile-menu-bar"); const pageName = document.querySelector("#page-name"); /*change prefix from "./" for test page inside the issue's folder to "./issues-number/" for root index file */ const prefix = "./"; const articles = { "Featured Art": [ { "title": "Argentine Tango Flash Mob Budapest", "sub-title": "(date unknown)", "author": "View and Listen", "description": [ ], "imgUrl": `${prefix}tango-mob.jpg`, "link": `javascript:void(0)`, "poem": false, "mainImg": true, }, ], "Fiction": [ { "title": "Tango", "sub-title": "", "author": "Luisa Valenzuela", "description": [ "I was told:", "In this dance hall you have to sit close to the bar, on the left near the cash register; order a glass of wine, nothing stronger because it's not becoming for women, don't drink beer because beer makes you want to piss and pissing isn't for ladies either. They talk about a kid from this neighborhood who ditched his girlfriend when he caught her leaving the ladies room: I thought she was pure spirit, a fairy, it seems the kid said. The girlfriend was left flat, which in this neighborhood still has connotations of loneliness and spinsterhood, something frowned upon. For women, that is. So I was told.", "I'm alone and during the week I don't care, but Saturdays I like to be with someone and be held tight. That's why I dance the tango.", ], "imgUrl": `${prefix}tango.jpg`, "link": `${prefix}valenzuela-tango-eng.html`, "poem": false, }, { "title": "Para cazar a un nazi", "sub-title": "", "author": "por Roberto Fox - según lo relatado a Frank Thomas Smith", "description": [ "Hay momentos en el presente, pero también en el pasado y espero que en el futuro, en que siento la necesidad de sacar a Eliot de mi biblioteca y leer los Cuatro cuartetos. Los momentos son generalmente cuando estoy trabado con algún relato o algún poema y pienso que simplemente no hay solución posible.", "Estaba meditando sobre estos tres versos cuando sonó el teléfono. Estaba sentado a mi escritorio de espaldas al ventanal que da al campo de golf municipal del Parque de Palermo. No me puedo sentar de cara al parque cuando trabajo porque su belleza me distrae. De cualquier manera, había niebla, algo común en las mañanas de otoño, aunque usualmente el sol la disipa hacia la media mañana. Levanté el auricular y giré mi sillón hacia el parque:", "—Hola.", "—El Sr. Roberto Fox, por favor —pidió una voz en inglés.", ], "imgUrl": `${prefix}kutschmann.jpg`, "link": `${prefix}hunt-a-nazi-esp.html`, "poem": false, }, ], "Social Science": [ { "title": "Favela Children - 1", "sub-title": "", "author": "Ute Creamer", "description": [ 'Diary 1965 - 1967', 'Antwerp, August 20, 1965', 'Rudely awakened at five in the morning by the noise of the ship being unloaded, jumped out of bed, put on jeans and a sweater and went out on deck. I watched the unloading of meat from Argentina and then took a stroll through the harbor area where I discovered a wonderful Flemish Gothic church.', 'Le Havre, August 25', 'We\'ve started to save money and now use the menus as post-cards. It feels as though we\'re on vacation and it takes a great mental effort to realize that in three weeks we\'ll be working in the favelas. But now we\'re being drowsily rocked on deck by long, softly rolling waves.', ], "imgUrl": `${prefix}favela-cover.jpg`, "link": `${prefix}favela-children-1.html`, "poem": false, }, ], "Children's Corner": [ { "title": "The Magic Mound - I", "sub-title": "", "author": "Frank Thomas Smith", "description": [ "The Vacation House", "It had rained the night before and the unpaved road had turned to reddish mud. After they reached the top of a hill and started down the other side, the minivan slipped on a curve and the back wheels got stuck in a ditch on the side of the road. Zeca drove back and forth in a rocking motion trying to free the wheels, but they only spun and sank deeper into the mud. Luckily a farmer from a nearby ranch happened to pass by with a tractor and pulled them out. It was great fun for the children, for it was part of the adventure of vacation. They were on their way to a house in the country which belonged to one of dona Ute's many friends.", ], "imgUrl": `${prefix}magic-mound-3.jpg`, "link": `${prefix}magic-mound-1.html`, "poem": false, }, ], "Nostalgia": [ { "title": "McSorley's Old Ale House", "sub-title": "", "author": "Joseph Mitchell", "description": [ "April 14, 1940", "McSorley’s occupies the ground floor of a red brick tenement at 15 Seventh Street, just off Cooper Square, where the Bowery ends. It was opened in 1854 and is the oldest saloon in the city. In eighty-six years it has had four owners—an Irish immigrant, his son, a retired policeman, and his daughter—and all of them have been opposed to change. It is equipped with electricity, but the bar is stubbornly illuminated with a pair of gas lamps, which flicker fitfully and throw shadows on the low, cobwebby ceiling each time someone opens the street door. There is no cash register. Coins are dropped in soup bowls—one for nickels, one for dimes, one for quarters, and one for halves—and bills are kept in a rosewood cashbox. It is a drowsy place; the bartenders never make a needless move, the customers nurse their mugs of ale, and the three clocks on the walls have not been in agreement for many years. The clientele is motley. It includes mechanics from the many garages in the neighborhood, salesmen from the restaurant-supply houses on Cooper Square, truck-drivers from Wanamakers’s, internes from Bellevue, students from Cooper Union, clerks from the row of secondhand bookshops north of Astor Place, and men with tiny pensions who live in hotels on the Bowery but are above drinking in the bars on that street. The backbone of the clientele, however, is a rapidly thinning group of crusty old men, predominantly Irish, who have been drinking there since they were youths and now have a proprietary feeling toward the place. Some of these veterans clearly remember John McSorley, the founder, who died in 1910 at the age of eighty-seven. They refer to him as Old John, and they like to sit in rickety armchairs around the big belly stove which heats the place, gnaw on the stems of their pipes, and talk about him.", ], "imgUrl": `${prefix}mcsorleys-john-sloan.jpg`, "link": `${prefix}mitchell-mcsorleys.html`, "poem": false, }, ], "Anthroposophy": [ { "title": "Esoteric Lessons for the First Class of the School for Spiritual Science", "sub-title": "Lesson Six", "author": "Rudolf Steiner", "description": [ "My dear friends,", "During these meetings we are considering the truths which can be learned from the Guardian of the Threshold. And the Guardian's continuous admonition is that man be aware that he advances spiritually when he becomes conscious of his true relation to the world.", "To become conscious of his true relation to the world, he first gets to know the world by observing the kingdoms of nature which are external to his own being – the animal kingdom, the vegetable kingdom and the mineral kingdom. These relations offer him the opportunity to admire them and to use them to carry out his own will impulses, etc. Man considers them to be his external world, and with normal consciousness he is hardly aware of how he has evolved out of this world, how a deep relationship to that world exists within him.", ], "imgUrl": `${prefix}1goetheanum.jpg`, "link": `${prefix}steiner-class-6.html`, "poem": false, }, { "title": "Thoughts about the Foundation Stone", "sub-title": "The Foundation Stone", "author": "Ernst Katz", "description": [ "The General Anthroposophical Society was founded at the famous Christmas Conference, which took place in Dornach, Switzerland, from December 24, 1923, to January 1, 1924, with approximately 800 members attending. Here Rudolf Steiner spoke the Foundation Stone and exhorted his listeners to take these verses into their hearts. The Foundation Stone consists of three similarly structured panels of twenty-two lines each and a different fourth panel of twenty-five lines. The verses were not given all at once, but in parts, spread over different days. In addition, on each of seven days Rudolf Steiner wrote on a blackboard certain sets of selected lines, which he referred to as “rhythms.” He indicated that meditation on these “rhythms” is essential for penetrating to the inner substance of the Foundation Stone.", ], "imgUrl": `${prefix}altar-auferstehung.jpg`, "link": `${prefix}katz-foundation-stone.html`, "poem": false, }, { "title": "Reflexiones sobre la Piedra Fundamental", "sub-title": "", "author": "Ernst Katz", "description": [ "La Sociedad Antroposófica General fue fundada durante la famosa Conferencia de Navidad, que se llevó a cabo en Dornach, Suiza, desde el 24 de diciembre de 1923 al 1° de enero de 1924, con una concurrencia de aproximadamente 800 miembros. Rudolf Steiner pronunció allí la Piedra Fundamental y exhortó a los oyentes a acoger esos versos en su corazón. La Piedra Fundamental consiste en tres paneles de similar estructura, de 24 líneas cada uno, y un panel diferente de veinticinco líneas. Los versos no fueron recitados todos al mismo tiempo, sino en tramos, a lo largo de varios días. Además, cada día durante siete días, Rudolf Steiner escribió en el pizarrón ciertos conjuntos de líneas, a los que se refirió como “ritmos”, indicando que la meditación sobre estos “ritmos” es esencial para llegar a la sustancia íntima de la Piedra Fundamental.", ], "imgUrl": `${prefix}altar-auferstehung.jpg`, "link": `${prefix}katz-foundation-stone-esp.html`, "poem": false, }, ], "Poetry": [ { "title": "Reincarnation Blues - Canto XIII", "sub-title": "Love's Lament", "author": "Frank Thomas Smith", "description": [ "My sister Faith was first to go,
Her blood was staunched and ceased to flow.
Never was she the worldly type,
And won't return till the time is ripe.", "My other sister's name is Hope;
Never was she one to mope.
Her eyes, once fawn's, now sadly droop,
She walks with an ancient's wary stoop.", "Hard it will be to linger on
When blissful sister Hope is gone.
Retreating then, I'll take cover,
Waiting for a constant lover.", ], "imgUrl": `${prefix}ascent-bosch-3.jpg`, "link": `${prefix}reincarnation-blues-13.html`, "poem": true, }, { "title": "Reincarnation Blues - Canto XII", "sub-title": "", "author": "Frank Thomas Smith", "description": [ "Proof of God is in the hexagon,
It's not at all like the pentagon.
If you don't believe me, see the bee,
whose brain is smaller than a pea.", "It never went to school to learn
the best way to make a hive
and yet its six-sided cells all yearn
to keep the baby-bees alive.", "The other gon is the pentagon,
whose five-sided wall well protects
the military-industrial-capitalist-complex:
It's what back home we'd call a con.", ], "imgUrl": `${prefix}bee-cell-1.png`, "link": `${prefix}reincarnation-blues-12.html`, "poem": true, }, { "title": "Reincarnation Blues - Canto XI", "sub-title": "", "author": "Frank Thomas Smith", "description": [ "Often I try to analyze
the reasons for being here and now,
today, kicking and alive,
swearing and forgetting my solemn vow.", "Once I was nothing, a bare-ass nude,
and in not too many years to go
again a nothing nada dude.
That's the way it goes, you know.", ], "imgUrl": `${prefix}ascent-bosch-3.jpg`, "link": `${prefix}reincarnation-blues-11.html`, "poem": true, }, ], "Political Science": [ { "title": "The Crushing of American Socialism", "sub-title": "The Never-Ending Impact of a Forgotten Blitzkrieg Against the American Left", "author": "Adam Hochschild", "description": [ "Donald Trump has had the urge to crush many things, including the last election. So I must admit I found it eerily amusing that, when the FBI entered his estate at Mar-a-Lago recently, they did so under a warrant authorized by the Espionage Act of 1917. History certainly has a strange way of returning in our world and also of crushing alternatives. Whatever Trump did, that act has a sorry track record in both its own time and ours when it has been used, including by his administration, to silence the leakers of government information. And because my latest book, American Midnight: The Great War, A Violent Peace, and America’s Forgotten Crisis, is about the crushing of alternatives a century ago in this country, in the midst of all this, I couldn’t help thinking about a part of our history that The Donald would undoubtedly have been the first to crush, if he had the chance.", ], "imgUrl": `${prefix}debs-1.jpg`, "link": `${prefix}hochschild-socialism.html`, "poem": false, }, { "title": "Mikhail Gorbachev", "sub-title": "Interview with Gerhard Hafner", "author": "Interviewed by Wolfgang Held", "description": [ "W.H. What did you think when you heard about the death of Mikhail Gorbachev?", "G.H. The profound tragedy of his life! Mikhail Gorbachev is, in my eyes, one of the greatest, perhaps the greatest politicians of the 20th century. He achieved unbelievable things – and reaped in his region of the world above all thanklessness and incomprehension. At the end of his life, he was shamefully lonely, disregarded, and even outright hated by the majority of his compatriots. Associated with this is a second tragedy that I find even greater. It is related to the question of what has become of his grandiose impulse today. Certainly, indirectly, in some cases unintentionally, Gorbachev’s mission had planetary dimensions. But it was first addressed to his country and his fellow human beings. He wanted to free them from the tribulation of an anti-human, totalitarian society. Gorbachev’s goal was to democratize the Soviet Union and Russia, to open them up to intellectual freedom and plurality as well as to a free and, at the same time, social economy, to rebuild the totalitarian, static system into an order that was self-determined, capable of development by the people. And today? Putin rules increasingly lonely and unteachable, authoritarian, aggressive, even totalitarian internally and externally, and wages war. Those who dare to call a spade a spade must exchange their freedom for prison. The course of history is sometimes cruel. Thirty years after Mikhail Gorbachev’s great political thaw, this largest country on earth is ruled by forces that do not stand for what he has tried to strive for.", ], "imgUrl": `${prefix}gorby.jpg`, "link": `${prefix}hafner-gorbacheef.html`, "poem": false, }, ], "Current Events": [ { "title": "As Falls Russia, So Falls the World", "sub-title": "Exceptionalism Goes Global", "author": "John Feffer", "description": [ "Here’s a nightmare scenario: Unable to recruit enough soldiers from the Russian Federation, Vladimir Putin takes North Korean leader Kim Jong-un up on his recent offer to send 100,000 North Koreans to join the Russian president’s ill-fated attempt to seize Ukraine. Kim has also promised to send North Korean workers to help rebuild that country’s Donbas region, parts of which Russian forces have destroyed in order to “save” it. Consider this an eerie echo of the fraternal aid that Eastern European Communist states provided Pyongyang in the 1950s after the devastation of the Korean War.", "The current love connection between Russia and North Korea is anything but unprecedented. The Kremlin has provided a succession of Kims with military and economic support. If Putin were ultimately to rely on so many North Korean soldiers and laborers, however, it would mark the first time that country had returned the favor in any significant way. As a down payment on the new relationship, Pyongyang is already reportedly assisting Moscow’s war effort with shipments of Soviet-era rockets and ammunition.", ], "imgUrl": `${prefix}russia-nk.jpg`, "link": `${prefix}feffer-russia.html`, "poem": false, }, ], }; const articlesKeys = Object.keys(articles); const navChekboxes = Array.from(document.querySelectorAll("#nav-menu input")); // Uncheck all other hidden checkboxes when one is checked // colapses nav-menu dropdowns when a new one is expanded function createNavMenu(navMenuElement) { navChekboxes.forEach(input => { input.addEventListener("change", () => { navChekboxes.forEach(element => { if (element === input) return element.checked = false; }); }); }); function createMenuLinks() { articlesKeys.forEach(category => { // create dropdown menu if there is more than one article in category if (articles[category].length === 1) { if (!articles[category][0]["title"]) return const div = document.createElement("div"); const p = document.createElement("p"); const title = articles[category][0]["title"] .toLowerCase() .replace(/[^a-zA-Z0-9]/g, ""); p.className = "nav-menu-links"; p.innerText = category; p.dataset.title = title; div.appendChild(p); navMenuElement.appendChild(div); } else if (articles[category].length > 1) { const content = document .querySelector("[data-dropdown-template]") .content.cloneNode(true); const hiddenInput = content.querySelector("[data-hidden-input]"); const label = content.querySelector("[data-label]"); const title = content.querySelector("[data-title]"); const list = content.querySelector("[data-list]"); hiddenInput.id = `${category}-input`; label.htmlFor = hiddenInput.id; title.innerHTML = `${category} ▼`; articles[category].forEach(article => { const li = document.createElement("li"); const title = article["title"] .replace(/[^a-zA-Z0-9]/g, "") .toLowerCase(); li.className = "nav-menu-links"; li.id = article["title"]; li.innerText = `${article.title} - ${article.author}`; li.dataset.title = title; list.appendChild(li); }); navMenuElement.appendChild(content); } }); } createMenuLinks(); //event listeners const navmenuLinkArray = Array.from( navMenuElement.querySelectorAll(".nav-menu-links") ); const scrollToTarget = target => { const headerOffset = 60; const elementPositon = target.getBoundingClientRect().top; const offsetPosition = elementPositon + window.pageYOffset - headerOffset; window.scrollTo({ top: offsetPosition, behavior: "smooth", }); }; navmenuLinkArray.forEach(link => { link.addEventListener("click", () => { let article = document.querySelector(`#${link.dataset.title}`); scrollToTarget(article); if (menuBar.dataset.opened === "true") { menuBar.dataset.opened = "false"; } }); }); } function checkAndReduce() { const title = mainPage.querySelector("h2"); if (title.innerText.length > 20) { title.style.fontSize = "2.5em"; } } function appendPicNavMenu() { const picNavDiv = document .querySelector("[data-pic-nav]") .content.cloneNode(true); const nav = picNavDiv.querySelector("nav"); nav.id = "pic-nav-menu"; const subscribeDiv = document .querySelector("[data-subscribe-div]") .content.cloneNode(true); const subscribe = subscribeDiv.querySelector("div"); subscribe.id = "subscribe"; const firstChild = document.querySelector("#main-div").lastElementChild; const navDiv = document.createElement("div"); navDiv.appendChild(picNavDiv); navDiv.appendChild(subscribe); firstChild.insertAdjacentElement("afterend", navDiv); } function createArticlePeek(object) { const keys = Object.keys(object); keys.forEach(key => { if (keys.indexOf(key) !== 0) { const categoryTitle = document.createElement("h1"); categoryTitle.innerText = key; categoryTitle.className = "category-title"; mainPage.appendChild(categoryTitle); } object[key].forEach(article => { const articleDiv = document .querySelector("[data-article-template]") .content.cloneNode(true); const articleInnerDiv = articleDiv.querySelector("article"); const titleElement = articleDiv.querySelector("h2"); const author = articleDiv.querySelector("h1"); const subTitle = articleDiv.querySelector("h3"); const description = articleDiv.querySelector("[data-article-description]"); const img = articleDiv.querySelector("[data-article-img]"); const link = articleDiv.querySelector("[data-article-link]"); articleInnerDiv.id = article["title"] .toLowerCase() .replace(/[^a-zA-Z0-9]/g, ""); titleElement.innerHTML = article["title"]; author.innerHTML = article["author"]; if (article["sub-title"] && article["sub-title"].length !== 0) { subTitle.innerText = article["sub-title"]; } img.src = article["imgUrl"]; link.href = article["link"]; // Special Atributes for "Featured Art" if (article["mainImg"]) { titleElement.style.marginBottom = "1em"; link.style.display = "none"; img.style.maxWidth = "80%"; img.style.maxHeight = "100%"; img.style.marginLeft = "auto"; img.style.marginRight = "auto"; img.style.marginBottom = "1em"; img.style.float = "none"; img.insertAdjacentElement("afterend", author); } // if its a poem, make the div and link float (so the text doesn't go under the img) if (article["poem"]) { description.style.float = "left"; link.style.clear = "left"; link.style.float = "left"; } let i = 1; const className = article["title"] .replace(/[^a-zA-Z0-9]/g, "") .toLowerCase(); description.id = `${className}-paragraphs-div`; link.id = `${className}-main-link`; article["description"].forEach(descriptionParagraph => { const paragraph = document.createElement("p"); paragraph.innerHTML = descriptionParagraph; paragraph.className = `${className}-paragraph-${i}`; description.appendChild(paragraph); i++; }); mainPage.appendChild(articleDiv); checkAndReduce(); }); }); appendPicNavMenu(); } function mobilePortrait() { if (previousStylesheet.dataset.stylesheet == "mobile") return pageName.innerHTML = "Menu"; //create elements in mobile-navbar createNavMenu(navMobile); //get modify input and label "for" in mobile nav const navMobileInputs = Array.from(navMobile.querySelectorAll("input")); const navMobileLabels = Array.from(navMobile.querySelectorAll("label")); navMobileInputs.forEach(input => { input.id += "-mobile"; }); navMobileLabels.forEach(label => { label.htmlFor += "-mobile"; }); //append elements topBar.appendChild(navMobile); //create observer functions let observerMobileMenu = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.type == "attributes") { if (menuBar.dataset.opened == "true") { navMobile.classList.add("open"); menuButton.classList.add("close"); } else { navMobile.classList.remove("open"); menuButton.classList.remove("close"); } } }); }); //create menu open button - three lines for (let i = 0; i < 3; i++) { const menuButtonLine = document.createElement("div"); menuButtonLine.className = "menu-button-line"; menuButton.appendChild(menuButtonLine); } //give new class to desktop menu navMobile.className = "nav-menu menu-mobile desktop-hide"; //observe for changes observerMobileMenu.observe(menuBar, { attributes: true, }); //menu button listener menuButton.addEventListener("click", () => { if (menuBar.dataset.opened === "false") { menuBar.dataset.opened = "true"; } else { menuBar.dataset.opened = "false"; } }); previousStylesheet.dataset.stylesheet = "mobile"; // musicLinks.innerHTML = "Words and Music" } //scroll to top on refresh window.onbeforeunload = function () { window.scrollTo(0, 0); }; //create elements for data-attributes // function to set data atributes acording to screen width function setStylesheetDataAttr() { if (screen.width <= 650) { if (stylesheetSelector.dataset.stylesheet == "mobile") return stylesheetSelector.dataset.stylesheet = "mobile"; } else if (screen.width >= 651 && screen.width < 1200) { if (stylesheetSelector.dataset.stylesheet == "medium") return stylesheetSelector.dataset.stylesheet = "medium"; } else { if (stylesheetSelector.dataset.stylesheet == "desktop") return stylesheetSelector.dataset.stylesheet = "desktop"; } } //execute on rezise window.addEventListener("resize", () => { setStylesheetDataAttr(); }); //ovserve changes on data-attributes and execute functions let observerStylesheetAttr = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.type == "attributes") { if (stylesheetSelector.dataset.stylesheet === "mobile") { mobilePortrait(); } } }); }); observerStylesheetAttr.observe(stylesheetSelector, { attributes: true, }); //onload functions window.addEventListener("load", () => { setStylesheetDataAttr(); mainPage.offsetTop; introScreen.classList.add("fade-out"); setTimeout(() => { introScreen.style.display = "none"; document.querySelector("html").style.overflowY = "visible"; lightDarkWarning.classList.remove("desktop-hide", "mobile-hide"); }, 1000); //local storage - if exists change theme if (!localStorage.getItem("style")) return lightDarkWarning.style.display = "none"; const lightOrDark = localStorage.getItem("style"); if (lightOrDark === "dark") { stylesheet.href = `${prefix}css/dark.css`; } if (screen.width <= 650) { mobilePortrait(); } }); //remove light-and-dark warning onclick lightDarkWarning.addEventListener("click", () => { lightDarkWarning.style.display = "none"; }); // Toggle Stylesheets toggleStylesheetLightButton.addEventListener("click", () => { stylesheet.href = `${prefix}css/light.css`; localStorage.setItem("style", "light"); }); toggleStylesheetDarkButton.addEventListener("click", () => { stylesheet.href = `${prefix}css/dark.css`; localStorage.setItem("style", "dark"); }); // Sticky navbar const stickyFunc = () => { const limit = mainPage.offsetTop; const navCol = document.querySelector("#sticky-div "); if (window.pageYOffset + 50 >= limit) { navCol.classList.add("fixed-nav-col"); } else { navCol.classList.remove("fixed-nav-col"); } }; //observer function, scroll-in abnormal logo when footer is 50% visible let notFirstTime = 0; const observer = new IntersectionObserver( entries => { if (entries[0].isIntersecting === true) { if (notFirstTime > 0) return abnormalLogoStylesheet.href = `${prefix}css/logo2.css`; abnormalLogo.classList.add("logo-animation"); notFirstTime++; } }, { threshold: [0.5] } ); observer.observe(footerAbnormal); createNavMenu(navMenu); createArticlePeek(articles); window.onscroll = () => { stickyFunc(); }; })();