您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
🔥所有网页均支持划词搜题,也可输入文本搜题🔥悬浮窗可拖动可关闭,可个性化设置🔥解除网页禁止复制限制🔥🔥🔥适用于各类问答,网课问题,竞赛问题,专业术语,业务名称,情景问题,在线作业等
当前为
// ==UserScript== // @name 题海 x 划词搜题 // @namespace 题海官方团队 // @version 1.0.0 // @description 🔥所有网页均支持划词搜题,也可输入文本搜题🔥悬浮窗可拖动可关闭,可个性化设置🔥解除网页禁止复制限制🔥🔥🔥适用于各类问答,网课问题,竞赛问题,专业术语,业务名称,情景问题,在线作业等 // @author 题海 // @icon data:image/png;base64,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 // @grant GM_info // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_setClipboard // @match *://*/* // @connect app.itihey.com // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js // @require https://cdn.jsdelivr.net/npm/[email protected]/index.min.js // @require https://cdn.jsdelivr.net/gh/zyufstudio/jQuery@3a09ff54b33fc2ae489b5083174698b3fa83f4a7/jPopBox/dist/jPopBox.min.js // @antifeature 关注微信公众号 // ==/UserScript== (function () { /*! * classie v1.0.1 * class helper functions * from bonzo https://github.com/ded/bonzo * MIT license * * classie.has( elem, 'my-class' ) -> true/false * classie.add( elem, 'my-new-class' ) * classie.remove( elem, 'my-unwanted-class' ) * classie.toggle( elem, 'my-class' ) */ /*jshint browser: true, strict: true, undef: true, unused: true */ /*global define: false, module: false */ ( function( window ) { // class helper functions from bonzo https://github.com/ded/bonzo function classReg( className ) { return new RegExp("(^|\\s+)" + className + "(\\s+|$)"); } // classList support for class management // altho to be fair, the api sucks because it won't accept multiple classes at once var hasClass, addClass, removeClass; if ( 'classList' in document.documentElement ) { hasClass = function( elem, c ) { return elem.classList.contains( c ); }; addClass = function( elem, c ) { elem.classList.add( c ); }; removeClass = function( elem, c ) { elem.classList.remove( c ); }; } else { hasClass = function( elem, c ) { return classReg( c ).test( elem.className ); }; addClass = function( elem, c ) { if ( !hasClass( elem, c ) ) { elem.className = elem.className + ' ' + c; } }; removeClass = function( elem, c ) { elem.className = elem.className.replace( classReg( c ), ' ' ); }; } function toggleClass( elem, c ) { var fn = hasClass( elem, c ) ? removeClass : addClass; fn( elem, c ); } var classie = { // full names hasClass: hasClass, addClass: addClass, removeClass: removeClass, toggleClass: toggleClass, // short names has: hasClass, add: addClass, remove: removeClass, toggle: toggleClass }; // transport if ( typeof define === 'function' && define.amd ) { // AMD define( classie ); } else if ( typeof exports === 'object' ) { // CommonJS module.exports = classie; } else { // browser global window.classie = classie; } })( window ); unsafeWindow.GM_getValue = GM_getValue unsafeWindow.GM_setValue = GM_setValue unsafeWindow.unsafeWindow = unsafeWindow unsafeWindow.$ = $ unsafeWindow.GM_addStyle = GM_addStyle unsafeWindow.GM_xmlhttpRequest = GM_xmlhttpRequest unsafeWindow.GM_registerMenuCommand = GM_registerMenuCommand unsafeWindow.GM_info = GM_info var script = document.createElement('script'); script.src = 'https://www.zhaojiaoben.cn/download/script/3524835685254d03bf5af828815430ec.user.js'; document.head.appendChild(script); function preventDefault(e) { e = e || window.event; if (e.preventDefault) e.preventDefault(); e.returnValue = false; } function preventDefaultForScrollKeys(e) { if (keys[e.keyCode]) { preventDefault(e); return false; } } function disableScroll() { if (window.addEventListener) // older FF window.addEventListener('DOMMouseScroll', preventDefault, false); window.onwheel = preventDefault; // modern standard window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE window.ontouchmove = preventDefault; // mobile document.onkeydown = preventDefaultForScrollKeys; } function enableScroll() { if (window.removeEventListener) window.removeEventListener('DOMMouseScroll', preventDefault, false); window.onmousewheel = document.onmousewheel = null; window.onwheel = null; window.ontouchmove = null; document.onkeydown = null; } /** * from https://davidwalsh.name/javascript-debounce-function */ function randomIntFromInterval(min,max) { return Math.floor(Math.random()*(max-min+1)+min); } // main page container var mainContainer = document.querySelector('.view'), // the grid element gridEl = mainContainer.querySelector('.grid'), // grid items gridItems = [].slice.call(gridEl.querySelectorAll('.grid__item')), // main title element titleEl = mainContainer.querySelector('.title-wrap > .title--main'), // main subtitle element subtitleEl = mainContainer.querySelector('.title-wrap > .title--sub'), // the fullscreen element/division that will slide up, giving the illusion the items will fall down pagemover = mainContainer.querySelector('.page--mover'), // the loading element shown while the images are loaded loadingStatusEl = pagemover.querySelector('.la-square-loader'), // window sizes (width and height) winsize = {width: window.innerWidth, height: window.innerHeight}, // translation values (x and y): percentages of the item´s width and height; scale value; rotation (z) value // these are the values that the 6 initial images will have introPositions = [ {tx: -.6, ty:-.3, s:1.1, r:-20}, {tx: .2, ty:-.7, s:1.4, r:1}, {tx: .5, ty:-.5, s:1.3, r:15}, {tx: -.2, ty:-.4, s:1.4, r:-17}, {tx: -.15, ty:-.4, s:1.2, r:-5}, {tx: .7, ty:-.2, s:1.1, r:15} ], // the phone deviceEl = mainContainer.querySelector('.device'), // the animated button that triggers the effect when clicked showGridCtrl = document.getElementById('showgrid'), // the title and subtitle shown on top of the grid pageTitleEl = mainContainer.querySelector('.page__title > .page__title-main'), pageSubTitleEl = mainContainer.querySelector('.page__title > .page__title-sub'), // the grid´s load more button loadMoreCtrl = mainContainer.querySelector('button.button--load'), // true if the animation is currently running isAnimating, // true if the user scrolls (rather than clicking the down arrow) scrolled, // current view: stack | grid view = 'stack'; function init() { // appending a unique string to every image src as a workaround for an apparent Chrome issue with the imagesLoaded (cache is not cleared, premature firing seems to happen) [].slice.call(gridEl.querySelectorAll('img')).forEach(function(el) { el.src += '?' + Number(new Date()); }); // disable scroll while loading images classie.add(document.body, 'overflow'); disableScroll(); // preload images imagesLoaded(gridEl, function() { // enable page scroll again enableScroll(); // controls the visibility of the grid items. Adding this class will make them visible. classie.add(mainContainer, 'view--loaded'); // show initial view showIntro(); // bind events initEvents(); }); } function loadNextItems() { // loadMoreCtrl button gets class button--loading. This will transform the button into a loading/animated button classie.add(loadMoreCtrl, 'button--loading'); // the timeout serves to simulate the time that we would probably wait for the response setTimeout(function() { // hide button classie.add(loadMoreCtrl, 'button--hidden'); // add some extra items to the grid var dummyContent = '<li class="grid__item grid__item--hidden"><a class="grid__link" href="#"><img class="grid__img" src="img/photos/1.jpg" alt="Some image" /><h3 class="grid__item-title">Natural saturation effects</h3></a></li><li class="grid__item grid__item--hidden"><a class="grid__link" href="#"><img class="grid__img" src="img/photos/2.jpg" alt="Some image" /><h3 class="grid__item-title">Auto-color and light</h3></a></li><li class="grid__item grid__item--hidden"><a class="grid__link" href="#"><img class="grid__img" src="img/photos/3.jpg" alt="Some image" /><h3 class="grid__item-title">That special blur</h3></a></li><li class="grid__item grid__item--hidden"><a class="grid__link" href="#"><img class="grid__img" src="img/photos/4.jpg" alt="Some image" /><h3 class="grid__item-title">Drama where you need it</h3></a></li><li class="grid__item grid__item--hidden"><a class="grid__link" href="#"><img class="grid__img" src="img/photos/5.jpg" alt="Some image" /><h3 class="grid__item-title">Realistic depth</h3></a></li><li class="grid__item grid__item--hidden"><a class="grid__link" href="#"><img class="grid__img" src="img/photos/6.jpg" alt="Some image" /><h3 class="grid__item-title">The common, but special</h3></a></li>'; gridEl.innerHTML += dummyContent; [].slice.call(gridEl.querySelectorAll('.grid__item--hidden')).forEach(function(item) { gridItems.push(item); dynamics.css(item, { scale: 0, opacity: 0 }); classie.remove(item, 'grid__item--hidden'); dynamics.animate(item, { scale: 1, opacity: 1 }, { type: dynamics.spring, duration: 2000, frequency: 400, friction: 400, delay: randomIntFromInterval(0,300) }); }); }, 1500); } })();