53 lines
1.8 KiB
JavaScript
53 lines
1.8 KiB
JavaScript
|
// ==UserScript==
|
||
|
// @name NameMC random skins infinite scroll
|
||
|
// @namespace https://fem.mint.lgbt/f.strw
|
||
|
// @version v1
|
||
|
// @description To those who are addicted to Minecraft skins (totally not me btw)
|
||
|
// @author f.strw
|
||
|
// @match https://namemc.com/minecraft-skins/random
|
||
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=namemc.com
|
||
|
// @grant none
|
||
|
// ==/UserScript==
|
||
|
|
||
|
(function() {
|
||
|
'use strict';
|
||
|
|
||
|
function appendNewElements() {
|
||
|
fetch('https://namemc.com/minecraft-skins/random')
|
||
|
.then(response => response.text())
|
||
|
.then(data => {
|
||
|
const tempContainer = document.createElement('div');
|
||
|
tempContainer.innerHTML = data;
|
||
|
|
||
|
const newElements = tempContainer.querySelector('.mb-2');
|
||
|
|
||
|
const images = newElements.querySelectorAll('img');
|
||
|
images.forEach(img => {
|
||
|
const dataSrc = img.getAttribute('data-src');
|
||
|
if (dataSrc) {
|
||
|
img.setAttribute('src', dataSrc);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
const existingContainer = document.querySelector('.mb-2');
|
||
|
existingContainer.insertAdjacentHTML('beforeend', newElements.innerHTML);
|
||
|
})
|
||
|
.catch(error => {
|
||
|
console.error('Error fetching new skins:', error);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function isBottomReached() {
|
||
|
const scrollPosition = window.innerHeight + window.scrollY;
|
||
|
const pageHeight = document.documentElement.offsetHeight;
|
||
|
return scrollPosition >= pageHeight;
|
||
|
}
|
||
|
|
||
|
function handleScroll() {
|
||
|
if (isBottomReached()) {
|
||
|
appendNewElements();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
window.addEventListener('scroll', handleScroll);
|
||
|
})();
|