Youtube poster: Set css backgroundSize to 'cover' for padded youtube thumbnails
This commit is contained in:
		@ -168,7 +168,13 @@ const youtube = {
 | 
			
		||||
        utils.loadImage(posterSrc('maxres'), 121) // Higest quality and unpadded
 | 
			
		||||
            .catch(() => utils.loadImage(posterSrc('sd'), 121)) // 480p padded 4:3
 | 
			
		||||
            .catch(() => utils.loadImage(posterSrc('hq'))) // 360p padded 4:3. Always exists
 | 
			
		||||
            .then(image => ui.setPoster.call(player, image.src));
 | 
			
		||||
            .then(image => ui.setPoster.call(player, image.src))
 | 
			
		||||
            .then(posterSrc => {
 | 
			
		||||
                // If the image is padded, use background-size "cover" instead (like youtube does too with their posters)
 | 
			
		||||
                if (!posterSrc.includes('maxres')) {
 | 
			
		||||
                    player.elements.poster.style.backgroundSize = 'cover';
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        // Setup instance
 | 
			
		||||
        // https://developers.google.com/youtube/iframe_api_reference
 | 
			
		||||
 | 
			
		||||
@ -105,8 +105,8 @@ const ui = {
 | 
			
		||||
        // Set the title
 | 
			
		||||
        ui.setTitle.call(this);
 | 
			
		||||
 | 
			
		||||
        // Assure the poster image is set, if the property was added before the UI was created
 | 
			
		||||
        if (this.poster) {
 | 
			
		||||
        // Assure the poster image is set, if the property was added before the element was created
 | 
			
		||||
        if (this.poster && this.elements.poster && !this.elements.poster.style.backgroundImage) {
 | 
			
		||||
            ui.setPoster.call(this, this.poster);
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
@ -167,6 +167,11 @@ const ui = {
 | 
			
		||||
        const loadPromise = utils.loadImage(poster)
 | 
			
		||||
            .then(() => {
 | 
			
		||||
                this.elements.poster.style.backgroundImage = `url('${poster}')`;
 | 
			
		||||
                Object.assign(this.elements.poster.style, {
 | 
			
		||||
                    backgroundImage: `url('${poster}')`,
 | 
			
		||||
                    // Reset backgroundSize as well (since it can be set to "cover" for padded thumbnails for youtube)
 | 
			
		||||
                    backgroundSize: '',
 | 
			
		||||
                });
 | 
			
		||||
                ui.togglePoster.call(this, true);
 | 
			
		||||
                return poster;
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user