hanime1.me 宽屏模式
// ==UserScript==
// @name hanime1.me 宽屏模式(网页全屏)
// @version 1.0
// @namespace https://github.com/ojdev/Tampermonkey
// @description hanime1.me 宽屏模式
// @author ojdev
// @match *://hanime1.me/*
// @icon https://vdownload.hembed.com/image/icon/nav_logo.png?secure=HxkFdqiVxMMXXjau9riwGg==,4855471889
// @license MIT
// @grant none
// ==/UserScript==
(function() {
'use strict';
function addWidescreenButton() {
const controls = document.querySelector('.plyr__controls');
if (controls && !document.querySelector('.plyr__controls__item[data-plyr="widescreen"]')) {
// 获取现有控制按钮的宽高
const sampleButton = controls.querySelector('.plyr__controls__item.plyr__control');
const buttonStyles = window.getComputedStyle(sampleButton);
const buttonWidth = buttonStyles.width;
const buttonHeight = buttonStyles.height;
const buttonMargin = buttonStyles.margin;
// 创建宽屏按钮
const widescreenButton = document.createElement('button');
widescreenButton.classList.add('plyr__controls__item', 'plyr__control');
widescreenButton.setAttribute('type', 'button');
widescreenButton.setAttribute('aria-label', 'Widescreen');
widescreenButton.setAttribute('data-plyr', 'widescreen');
// 设置宽高等于现有按钮
widescreenButton.style.width = buttonWidth;
widescreenButton.style.height = buttonHeight;
widescreenButton.style.margin = buttonMargin;
// 添加宽屏图标并居中
widescreenButton.innerHTML = `
<span class="material-icons-outlined" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">
width_full
</span>
<span class="plyr__sr-only">Widescreen</span>
`;
// 点击切换宽屏模式
widescreenButton.addEventListener('click', function() {
const playerWrapper = document.querySelector('.plyr');
const videoWrapper = document.querySelector('.plyr__video-wrapper');
if (playerWrapper && videoWrapper) {
playerWrapper.classList.toggle('widescreen-mode');
videoWrapper.classList.toggle('widescreen-mode-video');
document.body.classList.toggle('widescreen-mode-body');
}
});
// 将按钮插入到控制条中
controls.appendChild(widescreenButton);
// 添加宽屏模式的 CSS 样式
const style = document.createElement('style');
style.innerHTML = `
/* 宽屏模式的样式 */
.widescreen-mode {
width: 100% !important;
height: 100vh !important;
max-width: none !important;
max-height: none !important;
position: fixed !important;
top: 0;
left: 0;
background-color: #000;
z-index: 99999 !important; /* 确保播放器在最顶层 */
display: flex;
flex-direction: column;
justify-content: center;
}
.widescreen-mode-video {
width: 100% !important;
height: calc(100vh - 60px) !important; /* 调整高度以保持控制条可见 */
}
.widescreen-mode-body {
overflow: hidden;
}
.plyr__controls {
position: absolute;
bottom: 0;
width: 100%;
z-index: 100000 !important; /* 确保控制条在播放器上方 */
}
`;
document.head.appendChild(style);
}
}
// 轮询检查 .plyr__controls 是否加载完成
function checkForControls() {
if (document.querySelector('.plyr__controls')) {
addWidescreenButton();
} else {
setTimeout(checkForControls, 500); // 每 500 毫秒检查一次
}
}
// 启动检查
checkForControls();
})();