您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
右下角浮窗单击展开多个自定义操作区域
// ==UserScript== // @name 浮窗小工具 // @namespace http://tampermonkey.net/ // @match https://uatcts.jicift.com/* // @match http://*.jiciot.com/* // @exclude http://ls.demo.jiciot.com/ // @version 1.0.2 // @description 右下角浮窗单击展开多个自定义操作区域 // @author 沸水煮青蛙 // @grant GM_addStyle // @require https://code.jquery.com/jquery-2.1.4.min.js // @require https://code.jquery.com/jquery-2.1.3.min.js#sha256=23456... // @require https://code.jquery.com/jquery-2.1.2.min.js#md5=34567...,sha256=6789... // @license MIT // ==/UserScript== (function() { 'use strict'; console.log(`脚本开始运行`) $('#app').append('<div class="suspension"><div class="suspension2"><div class="suspension3"></div></div></div>'); let btnStrs = '<div class="yanshi-box2">' + '<div class="pading-box">' if(window.location.href.search("http://aiotlight.demo.jiciot.com")>-1){ btnStrs = btnStrs+ '<div class="transition1 transitionbox">' +'灯杆管理' + ' </div>' btnStrs = btnStrs + ' <div class="transition2 transitionbox">' + '驾驶舱' + '</div>' }else if(window.location.href.search("http://aiot.jiciot.com/")>-1){ btnStrs = btnStrs + ' <div class="transition1 transitionbox">' + '智慧照明' + '</div>' btnStrs = btnStrs+ '<div class="transition2 transitionbox">' +'位置平台' + ' </div>' }else if(window.location.href.search("http://postweb.demo.jiciot.com/")>-1){ btnStrs = btnStrs + ' <div class="transition1 transitionbox">' + '金库管控' + '</div>' btnStrs = btnStrs+ '<div class="transition2 transitionbox">' +'智慧照明' + ' </div>' } btnStrs = btnStrs + '<div id="fullScreen" class="transition3 transitionbox">' +'全屏' + '</div>' btnStrs = btnStrs+ '<div id="close" class="transition4 transitionbox" @click="clicktypes(3)">' + '关闭' + ' </div>' btnStrs = btnStrs + ' </div>' btnStrs = btnStrs+ ' </div>' $('#app').append(btnStrs); window.onload=function(){ if($('.transition1').size()==0 && $('.transition2').size()==0 ){ $('.transition3').css("top","0%") $('.transition4').css("top","0%") } //自动点击登录按钮 if(window.location.href.search("#/login")>-1){ $('.login-submit').click() } //自动点击登录按钮 if(window.location.href.search("loginPage")>-1){ $('input[value="登录"]').click() } }; let isactive = false $(".yanshi-box2").hide() $(".suspension").click(function(){ if(IsOrNoFullScreen()){ $(".transition3").html("退出全屏") }else{ $(".transition3").html("全屏") } if (isactive) { $(".transition1").addClass("fadeoutTopLeft") $(".transition2").addClass("fadeoutTopRight") $(".transition3").addClass("fadeoutBottomLeft") $(".transition4").addClass("fadeoutBottomRight") setTimeout(() => { $(".transition1").removeClass("fadeoutTopLeft") $(".transition2").removeClass("fadeoutTopRight") $(".transition3").removeClass("fadeoutBottomLeft") $(".transition4").removeClass("fadeoutBottomRight") $(".yanshi-box2").hide() isactive = false }, 400); } else { isactive = true $(".yanshi-box2").show() $(".transition1").addClass("fadeInTopLeft") $(".transition2").addClass("fadeInTopRight") $(".transition3").addClass("fadeInBottomLeft") $(".transition4").addClass("fadeInBottomRight") setTimeout(() => { $(".transition1").removeClass("fadeInTopLeft") $(".transition2").removeClass("fadeInTopRight") $(".transition3").removeClass("fadeInBottomLeft") $(".transition4").removeClass("fadeInBottomRight") }, 400); } }) $(".transition1").click(function(){ if(window.location.href.search("http://aiotlight.demo.jiciot.com")>-1){ window.location.href ="http://aiotlight.demo.jiciot.com/#/lightHome/index" } if(window.location.href.search("http://aiot.jiciot.com/")>-1){ window.location.href ="http://aiotlight.demo.jiciot.com/" } if(window.location.href.search("http://postweb.demo.jiciot.com/")>-1){ window.location.href ="http://ls.demo.jiciot.com/#/indexHbase?fullscreen=" } }) $(".transition2").click(function(){ if(window.location.href.search("http://aiotlight.demo.jiciot.com")>-1){ window.location.href ="http://aiotlight.demo.jiciot.com/#/bigScreen/index" } if(window.location.href.search("http://aiot.jiciot.com/")>-1){ window.location.href ="http://postweb.demo.jiciot.com/" } if(window.location.href.search("http://postweb.demo.jiciot.com/")>-1){ window.location.href ="http://aiotlight.demo.jiciot.com/" } }) $("#fullScreen").click(function(){ if(IsOrNoFullScreen()){ document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen ? document.webkitExitFullscreen() : ''; }else{ const elem = document.documentElement; if (elem.requestFullscreen) { elem.requestFullscreen(); } else if (elem.mozRequestFullScreen) { /* Firefox */ elem.mozRequestFullScreen(); } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */ elem.webkitRequestFullscreen(); } else if (elem.msRequestFullscreen) { /* IE/Edge */ elem.msRequestFullscreen(); } } }) $("#close").click(function(){ if (navigator.userAgent.indexOf("MSIE") > 0) { if (navigator.userAgent.indexOf("MSIE 6.0") > 0) { window.opener = null; window.close(); } else { window.open('', '_top'); window.top.close(); } } else if (navigator.userAgent.indexOf("Firefox") > 0) { window.location.href = 'about:blank '; } else { //window.opener = null; window.open('', '_self', ''); window.close(); } }) $('body').click(function(e) { var target = $(e.target); // 如果#overlay或者#btn下面还有子元素,可使用 // !target.is('#btn *') && !target.is('#overlay *') if(!target.is('.suspension') && !target.is('.suspension2') && !target.is('.suspension3') && isactive){ $(".transition1").addClass("fadeoutTopLeft") $(".transition2").addClass("fadeoutTopRight") $(".transition3").addClass("fadeoutBottomLeft") $(".transition4").addClass("fadeoutBottomRight") setTimeout(() => { $(".transition1").removeClass("fadeoutTopLeft") $(".transition2").removeClass("fadeoutTopRight") $(".transition3").removeClass("fadeoutBottomLeft") $(".transition4").removeClass("fadeoutBottomRight") $(".yanshi-box2").hide() isactive = false }, 400); } }); function IsOrNoFullScreen() { var explorer = window.navigator.userAgent.toLowerCase(); if (explorer.indexOf('chrome') > 0) {//webkit if (document.body.scrollHeight === window.screen.height && document.body.scrollWidth === window.screen.width) { return true } else { return false } } else {//IE 9+ fireFox if (window.outerHeight === window.screen.height && window.outerWidth === window.screen.width) { return true } else { return false } } } // // 获取当前可视窗口的宽度和高度 // const _winWidth = window.innerWidth // const _winHeight = window.innerHeight // // 获取拖拽div自身的宽度和高度 // const _boxWidth = 70//document.querySelector(".suspension").offsetWidth // const _boxHeight = 70//document.querySelector(".suspension").offsetHeight // // 鼠标按下事件 // document.querySelector(".suspension").onmousedown = function (event) { // // 获去光标在div元素坐标系中的位置(点击坐标) // const _offsetX = event.offsetX // const _offsetY = event.offsetY // // 鼠标移动时,计算拖拽元素的定位位置 // document.onmousemove = function (event) { // // 当前光标在可视窗口的定位 // const _clientX = event.clientX // const _clientY = event.clientY // // 计算拖拽元素的定位 // let _top = _clientY - _offsetY // let _left = _clientX - _offsetX // // 判断是否超过范围,如果超过就等于临界值 // if (_top < 0) { // _top = 0 // } else if (_top > _winHeight - _boxHeight) { // _top = _winHeight - _boxHeight // } // if (_left < 0) { // _left = 0 // } else if (_left > _winWidth - _boxWidth) { // _left = _winWidth - _boxWidth // } // console.log('_boxWidth:'+_boxWidth+'_boxHeight:'+_boxHeight+'_clientX:'+_clientX+' _offsetX:'+_offsetX+" 123:"+(_clientX - _offsetX)+" 456:"+(_winWidth - _boxWidth)) // // 设置元素的CSS定位 // document.querySelector(".suspension").style.top = _top + "px" // document.querySelector(".suspension").style.left = _left + "px" // } // // 鼠标弹起,取消鼠标移动事件 // document.onmouseup = function () { // document.onmousemove = null // } // } })(); //========================================= css GM_addStyle(` .suspension { position: absolute; top: 80%; right: 100px; transform: translateY(-50%); width: 70px; height: 70px; border-radius: 35px; background-color: rgba(255, 255, 255, 0.1); box-shadow: 0 0 8px 0 rgba(0,0,0,.1); cursor: pointer; overflow: hidden; z-index: 99999; } .suspension2 { margin: 5px; padding-top: 5px; width: 60px; height: 60px; border-radius: 30px; background-color: rgba(255, 255, 255, 0.4); } .suspension3 { margin-left: 5px; width:50px; height: 50px; border-radius: 25px; background-color: rgba(255, 255, 255, 0.5); } .yanshi-box,.yanshi-box2 { position: fixed; right: 100px; top: 80%; transform: translateY(-50%); width: 70px; height: 70px; } .yanshi-box2 { box-sizing: border-box; box-sizing: content-box; cursor: pointer; z-index: 99998; } .yanshi-box2>.pading-box { width: 100%; height: 100%; position: relative; } .yanshi-box2>.pading-box>.transitionbox { width: 70px; height: 40px; border-radius: 5px; font-size: 16px; color: white; border:1px solid #a7ffff; background: #002D5188; box-sizing: content-box; position: absolute; display: flex; align-items: center; z-index: 997; padding: 5px; justify-content:center; } .yanshi-box2>.pading-box>.transitionbox.transition1 { bottom: 50%; } .yanshi-box2>.pading-box>.transitionbox.transition2 { bottom: 50%; } .yanshi-box2>.pading-box>.transitionbox.transition3 { top: 50%; } .yanshi-box2>.pading-box>.transitionbox.transition4 { top: 50%; } .yanshi-box2>.pading-box>.transitionbox.transition1, .yanshi-box2>.pading-box>.transitionbox.transition3 { right: 80px; margin-top:10px; } .yanshi-box2>.pading-box>.transitionbox.transition2, .yanshi-box2>.pading-box>.transitionbox.transition4 { left: 80px; margin-top:10px; } // 旋转动画 @-webkit-keyframes rotateY { 0% { -webkit-transform: rotateY(0deg); } 100% { -webkit-transform: rotateY(360deg); } } @keyframes rotateY { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(360deg); } } /*设置内容由显示变为隐藏*/ @keyframes fadeioTL { 0% { opacity: 1; transform: translate(0%, 0%); } 100% { opacity: 0; transform: translate(80%, 50%); display: none; } } .fadeoutTopLeft { animation: fadeioTL 0.5s infinite; -webkit-animation: fadeioTL 0.5s infinite; } @keyframes fadeioBL { 0% { opacity: 1; transform: translate(0%, 0%); } 100% { opacity: 0; transform: translate(80%, -50%); display: none; } } .fadeoutBottomLeft { animation: fadeioBL 0.5s infinite; -webkit-animation: fadeioBL 0.5s infinite; } @keyframes fadeioTR { 0% { opacity: 1; transform: translate(0%, 0%); } 100% { opacity: 0; transform: translate(-80%, 50%); display: none; } } .fadeoutTopRight { animation: fadeioTR 0.5s infinite; -webkit-animation: fadeioTR 0.5s infinite; } @keyframes fadeioBR { 0% { opacity: 1; transform: translate(0%, 0%); } 100% { opacity: 0; transform: translate(-80%, -50%); display: none; } } .fadeoutBottomRight { animation: fadeioBR 0.5s infinite; -webkit-animation: fadeioBR 0.5s infinite; } @keyframes fadeInTL { 0% { display: block; opacity: 0; transform: translate(80%, 50%); } 100% { opacity: 1; transform: translate(0%, 0%); } } .fadeInTopLeft { animation: fadeInTL 0.5s infinite; -webkit-animation: fadeInTL 0.5s infinite; } @keyframes fadeInTR { 0% { display: block; opacity: 0; transform: translate(-80%, 50%); } 100% { opacity: 1; transform: translate(0%, 0%); } } .fadeInTopRight { animation: fadeInTR 0.5s infinite; -webkit-animation: fadeInTR 0.5s infinite; } @keyframes fadeInBL { 0% { display: block; opacity: 0; transform: translate(80%, -50%); } 100% { opacity: 1; transform: translate(0%, 0%); } } .fadeInBottomLeft { animation: fadeInBL 0.5s infinite; -webkit-animation: fadeInBL 0.5s infinite; } @keyframes fadeInBR { 0% { display: block; opacity: 0; transform: translate(-80%, -50%); } 100% { opacity: 1; transform: translate(0%, 0%); } } .fadeInBottomRight { animation: fadeInBR 0.5s infinite; -webkit-animation: fadeInBR 0.5s infinite; } `);