您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
跟随鼠标的提示框改进,并为其他模块提供鼠标提示框相关接口
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/450214/1085823/mousetip.js
- /* eslint-disable no-multi-spaces */
- /* eslint-disable no-implicit-globals */
- /* eslint-disable userscripts/no-invalid-headers */
- /* eslint-disable userscripts/no-invalid-grant */
- // ==UserScript==
- // @name mousetip
- // @displayname 鼠标提示框
- // @namespace Wenku8++
- // @version 0.1.3
- // @description 跟随鼠标的提示框改进,并为其他模块提供鼠标提示框相关接口
- // @author PY-DNG
- // @license GPL-v3
- // @regurl https?://www\.wenku8\.net/.*
- // @require https://gf.qytechs.cn/scripts/449412-basic-functions/code/Basic%20Functions.js?version=1085783
- // @grant none
- // ==/UserScript==
- (function __MAIN__() {
- 'use strict';
- const tipready = tipcheck();
- tipscroll();
- exports = {
- tipready: tipready,
- settip: settip,
- showtip: showtip,
- hidetip: hidetip
- };
- // Check if tipobj is ready, if not, then make it
- function tipcheck() {
- DoLog(LogLevel.Info, 'checking tipobj...');
- if (typeof(tipobj) === 'object' && tipobj !== null) {
- DoLog(LogLevel.Info, 'tipobj ready...');
- return true;
- } else {
- DoLog(LogLevel.Warning, 'tipobj not ready');
- if (typeof(tipinit) === 'function') {
- DoLog(LogLevel.Success, 'tipinit executed');
- tipinit();
- return true;
- } else {
- DoLog(LogLevel.Error, 'tipinit not found');
- return false;
- }
- }
- }
- // New tipobj movement method. Makes sure the tipobj stay close with the mouse.
- function tipscroll() {
- if (!tipready) {return false;}
- DoLog('tipscroll executed. ')
- tipobj.style.position = 'fixed';
- window.addEventListener('mousemove', tipmoveplus)
- return true;
- function tipmoveplus(e) {
- tipobj.style.left = e.clientX + tipx + 'px';
- tipobj.style.top = e.clientY + tipy + 'px';
- }
- }
- // show & hide tip when mouse in & out. accepts tip as a string or a function that returns the tip string
- function settip(elm, tip) {
- typeof(tip) === 'string' && (elm.tiptitle = tip);
- typeof(tip) === 'function' && (elm.tipgetter = tip);
- elm.removeEventListener('mouseover', showtip);
- elm.removeEventListener('mouseout', hidetip);
- elm.addEventListener('mouseover', showtip);
- elm.addEventListener('mouseout', hidetip);
- }
- function showtip(e) {
- if (e && e.currentTarget && (e.currentTarget.tiptitle || e.currentTarget.tipgetter)) {
- const tip = e.currentTarget.tiptitle || e.currentTarget.tipgetter();
- if (tipready) {
- tipshow(tip);
- e.currentTarget.title && e.currentTarget.removeAttribute('title');
- } else {
- e.currentTarget.title = e.currentTarget.tiptitle;
- }
- } else if (typeof(e) === 'string') {
- tipready && tipshow(e);
- }
- }
- function hidetip() {
- tipready && tiphide();
- }
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址