您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Clear all animations on websites
当前为
- // ==UserScript==
- // @name No Animations
- // @namespace No Animations Script
- // @version 2.1
- // @description Clear all animations on websites
- // @author Nameniok
- // @match *://*/*
- // @license MIT
- // @grant unsafeWindow
- // ==/UserScript==
- const isSameOrigin = (url) => {
- const currentOrigin = window.location.origin;
- return url.startsWith(currentOrigin);
- };
- const style = document.createElement('style');
- style.type = 'text/css';
- style.innerHTML = `
- * {
- transition: none !important;
- transition-property: none !important;
- transition-duration: 0s !important;
- transition-delay: 0s !important;
- transition-timing-function: initial !important;
- -webkit-transition: none !important;
- -moz-transition: none !important;
- -o-transition: none !important;
- animation-delay: none !important;
- animation-duration: none !important;
- -webkit-animation-delay: 0 !important;
- -webkit-animation-duration: 0 !important;
- -moz-animation-delay: 0 !important;
- -moz-animation-duration: 0 !important;
- -ms-animation-delay: 0 !important;
- -ms-animation-duration: 0 !important;
- -o-animation-delay: 0 !important;
- -o-animation-duration: 0 !important;
- scroll-behavior: auto !important;
- marquee-style: none !important;
- -moz-scroll-behavior: auto !important;
- -moz-marquee-style: none !important;
- }
- *::before, *::after, *::hover, *::active {
- transition: none !important;
- transition-property: none !important;
- transition-duration: 0s !important;
- transition-timing-function: initial !important;
- -webkit-transition: none !important;
- animation-delay: none !important;
- animation-duration: none !important;
- -webkit-animation-delay: 0 !important;
- -webkit-animation-duration: 0 !important;
- -moz-animation-delay: 0 !important;
- -moz-animation-duration: 0 !important;
- -ms-animation-delay: 0 !important;
- -ms-animation-duration: 0 !important;
- box-shadow: none;
- }
- *:before, *:after, *:hover, *:active {
- transition: none !important;
- transition-property: none !important;
- transition-duration: 0s !important;
- transition-timing-function: initial !important;
- -webkit-transition: none !important;
- animation-delay: none !important;
- animation-duration: none !important;
- -webkit-animation-delay: 0 !important;
- -webkit-animation-duration: 0 !important;
- -moz-animation-delay: 0 !important;
- -moz-animation-duration: 0 !important;
- -ms-animation-delay: 0 !important;
- -ms-animation-duration: 0 !important;
- }
- @keyframes {
- from {
- }
- to {
- }
- }
- img[src^="https://i.ytimg.com/an_webp/"] {
- display: none !important;
- }
- img[src*="/hqdefault.jpg"] {
- display: initial !important;
- }
- `;
- // Dodaj style do head
- document.head.appendChild(style);
- // Blokowanie animowanych obrazków z YouTube
- const blockedUrlPrefix = 'https://i.ytimg.com/an_webp/';
- const blockImageLoading = (event) => {
- const src = event.target.src || '';
- if (src.startsWith(blockedUrlPrefix) || src.endsWith('.webp')) {
- event.preventDefault();
- event.target.style.display = 'none';
- }
- };
- unsafeWindow.addEventListener('beforeload', blockImageLoading, true);
- //Pause all HTML5 videos on load (https://greasyfork.org/en/scripts/6487-pause-all-html5-videos-on-load/code)
- var videos = document.getElementsByTagName('video');
- window.addEventListener('load', stopVideo, false);
- function stopVideo() {
- for (var i = 0; i < videos.length; i++) {
- videos[i].pause();
- videos[i].currentTime = 0; // Poprawione odwołanie do currentTime
- }
- }
- // Funkcja do usuwania animacji z reguł animacji keyframes
- function removeAnimations() {
- // Funkcja do usuwania animacji z reguł animacji keyframes
- let styleSheets = Array.from(document.styleSheets);
- styleSheets.forEach((styleSheet) => {
- if (!styleSheet.href || isSameOrigin(styleSheet.href)) {
- try {
- let cssRules = Array.from(styleSheet.cssRules);
- cssRules.forEach((rule) => {
- if (rule.type === CSSRule.KEYFRAMES_RULE) {
- let keyframes = Array.from(rule.cssRules);
- keyframes.forEach((keyframe) => {
- keyframe.style.animation = "none";
- keyframe.style.animationName = "none";
- });
- }
- });
- } catch (error) {
- console.error("Error accessing CSS rules:", error);
- }
- }
- });
- }
- // Znajdź i dezaktywuj animacje fadeIn
- function deactivateFadeIn() {
- // Znajdź i dezaktywuj animacje fadeIn
- let scripts = document.querySelectorAll("script");
- scripts.forEach((script) => {
- let scriptContent = script.textContent || script.innerText;
- if (scriptContent.includes("fadeIn(")) {
- script.textContent = scriptContent.replace(/fadeIn\([^)]*\)/g, "fadeIn(0)");
- }
- });
- }
- // Update specific animations
- function updateSpecificAnimations() {
- // Update specific animations
- let transitionElements = document.querySelectorAll("*");
- transitionElements.forEach((element) => {
- let computedStyle = window.getComputedStyle(element);
- let transition = computedStyle.getPropertyValue("transition");
- if (transition.includes("flex") || transition.includes("filter")) {
- element.style.transition = transition.replace(/flex[^,]*|filter[^,]*/g, "none");
- }
- });
- }
- removeAnimations();
- deactivateFadeIn();
- updateSpecificAnimations();