您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
通知栏
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/411280/847422/H2P%3A%20notify%20util.js
- // ==UserScript==
- // @name H2P: notify util
- // @namespace http://tampermonkey.net/
- // @version 0.1.0
- // @description 通知栏
- // @author H2P
- // @compatible chrome
- // ==/UserScript==
- ((w) => {
- 'use strict';
- const $H2P = (xpath = 'body', queryOneElement = true) => queryOneElement ? document.querySelector(xpath) : Array.from(document.querySelectorAll(xpath));
- const style_notify = document.createElement('style');
- style_notify.id = 'h2p-style-notify';
- style_notify.innerHTML = `
- #h2p-div-notify-container {
- position: fixed;
- width: 280px;
- bottom: 20px;
- right: 20px;
- overflow: hidden;
- z-index: 9999;
- }
- .h2p-div-notify-item-container {
- position: relative;
- width: 250px;
- height: 25px;
- right: -280px;
- padding: 9px 13px;
- margin: 6px 0;
- border: 1px solid;
- border-radius: 5px;
- display: flex;
- align-items: center;
- transition: left 1.5s, right 1.5s;
- }
- .h2p-div-notify-item-container-in {
- right: 0;
- }
- .h2p-div-notify-item {
- width: 235px;
- height: 25px;
- margin-right: 5px;
- display: flex;
- align-items: center;
- }
- .h2p-div-notify-close {
- cursor: pointer;
- }
- .h2p-div-notify-close::before, .h2p-div-notify-close::after {
- position: absolute;
- content: '';
- width: 12px;
- height: 2px;
- background: chocolate;
- }
- .h2p-div-notify-close::before {
- transform: rotate(45deg);
- }
- .h2p-div-notify-close::after {
- transform: rotate(-45deg);
- }
- `;
- document.body.appendChild(style_notify);
- const div_notify = document.createElement('div');
- div_notify.id = 'h2p-div-notify-container';
- document.body.appendChild(div_notify);
- w.$notifyMgr = (() => {
- const Notify = function() {
- this.type = {
- default: {
- bgColor: '#e6ffff',
- bdColor: '#23bdd9'
- },
- success: {
- bgColor: '#f6ffec',
- bdColor: '#53752d'
- },
- warn: {
- bgColor: '#fefbe6',
- bdColor: '#fdc446'
- },
- error: {
- bgColor: '#fff0ef',
- bdColor: '#e75252'
- }
- }
- /**
- * 创建弹窗
- * @param {String} msg 显示的信息
- * @param {Object} type 弹窗类型,通过 $notifyMgr.type 设置
- * @param {Boolean} autoClose 弹窗是否自动关闭
- * @returns {String} id 返回弹窗 id
- */
- this.createNotify = ({ msg = '', type = notifyType.default, autoClose = true }) => {
- const ran = Math.floor(Math.random() * 100000000);
- const div_notify_item_container = document.createElement('div');
- div_notify_item_container.id = `h2p-div-notify-${ran}`;
- div_notify_item_container.classList.add('h2p-div-notify-item-container');
- div_notify_item_container.style.backgroundColor = type.bgColor;
- div_notify_item_container.style.borderColor = type.bdColor;
- div_notify_item_container.innerHTML = `
- <div class="h2p-div-notify-item">${msg}</div>
- `;
- const div_notify_item_close = document.createElement('div');
- div_notify_item_close.id = `h2p-div-notify-close-${ran}`;
- div_notify_item_close.classList.add('h2p-div-notify-close');
- div_notify_item_close.addEventListener('click', (e) => { this.closeNotify(`h2p-div-notify-${e.currentTarget.id.match(/[a-zA-Z\-]*(\d+)[a-zA-Z\-]*/g)[1]}`); });
- div_notify_item_container.appendChild(div_notify_item_close);
- $H2P('div#h2p-div-notify-container').appendChild(div_notify_item_container);
- setTimeout((id) => {
- // 显示通知栏
- $H2P(`#${id}`).classList.add('h2p-div-notify-item-container-in');
- autoClose && setTimeout(this.closeNotify, 4000, id);
- }, 100, div_notify_item_container.id);
- return div_notify_item_container.id;
- }
- /**
- * 关闭弹窗
- * @param {String} id
- */
- this.closeNotify = (id = '') => {
- $H2P(`#${id}`).classList.remove('h2p-div-notify-item-container-in');
- setTimeout(() => {
- $H2P('div#h2p-div-notify-container').removeChild($H2P(`#${id}`));
- }, 1500);
- }
- }
- return new Notify();
- })();
- })(window);