Greasy Fork is available in English.
Force titles to be displayed above movie posters (on some pages only)
当前为
// ==UserScript==
// @name Letterboxd Titles
// @namespace https://letterboxd.com/
// @version 1.0
// @description Force titles to be displayed above movie posters (on some pages only)
// @author n00bCod3r
// @match https://letterboxd.com/*
// @grant none
// ==/UserScript==
'use strict';
window.addEventListener('load', () => {
if (document.querySelector('ul.poster-list')) {
addTitles();
document.addEventListener('scroll', () => {
console.log('scrolled');
addTitles()
}, false);
}
}, false);
function addTitles() {
const maxTitleLength = 25;
let movieInfo = "";
//force elements to be vertically aligned at the end
document.querySelector('ul.poster-list').style.alignItems = "flex-end";
document.querySelectorAll('li>div[class*="film-poster-"]')
.forEach(elem => {
//prevent the script to break on scrolling
if (elem.dataset.filmName != undefined) {
//mark tweaked posters for when user will scroll
if (!elem.className.includes('tweaked')) {
elem.className += ' tweaked';
const movieTitle = elem.dataset.filmName;
const relaseYear = elem.dataset.filmReleaseYear;
movieInfo = movieTitle.length > maxTitleLength ? `${movieTitle.substring(0, maxTitleLength - 7)}... (${relaseYear})` : `${movieTitle} (${relaseYear})`
const divNode = document.createElement("div");
//set styles
const css = divNode.style;
css.width = `${elem.offsetWidth}px`;
css.textAlign = "center";
css.overflowWrap = "break-word"; //prevent long words to break layout
//set content
divNode.textContent = movieInfo;
//insert div above the poster image
elem.parentNode.insertBefore(divNode, elem);
}
}
})
}
s