Your Browser Just Grew Fingers👆! Install👇 → Swipe☝️ → Enjoy😎 , no setup required. ✔️Extensive universal gestures library, ✔️Enhanced interactions for 📝text/🖼️images/🎥videos 💪. Want more😱? Build your own gesture library🎨. Psst... Hidden features await discovery😏! Top Picks: Lemur | Quetta | Yandex Browser
优化全屏方向{
"gesture": {
"↑→↓←": {
"name": "打开设置",
"code": "/*ONLY TOP*/gestureData.openSet();"
},
"◆": {
"name": "初始化",
"code": "if(!gestureData.tipBoxTwo){\n\ngestureData.getNearVideo=e=>{\nlet v=(e.matches(\"video\")&& e.currentSrc)?e:null;\nif(!v)v= [...e.querySelectorAll('video')].find(v=>v.currentSrc);\nfor(let i=0;i<4&&!v&&e.parentElement;){\ne=e.parentElement;\nv= [...e.querySelectorAll('video')].find(v=>v.currentSrc);i++;}\nreturn v;\n};\n\nconst t=document.createElement('div');\n\nt.style.cssText='visibility:hidden;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);min-width:80px;min-height:26px;padding:6px;color:#1e87f0;font-size:20px!important;background-color:rgba(0,0,0,0.4);border-radius:999px;font-family:system-ui;z-index:2147483647;text-align:center;';\n\ngestureData.tipBoxTwo=t;\ndocument.body.appendChild(t);\n\nconst t2=document.createElement('div');\nt2.style.cssText=t.style.cssText;\ngestureData.tipBoxThree=t2;\n\nconst f=()=>{\nconst p=document.fullscreenElement;\nconst v=p?.querySelector('video');\nif(v){\nconst h=v.videoHeight< v.videoWidth;\nif(screen.orientation.type.includes('landscape')!=h){\ndocument.exitFullscreen();\nsetTimeout(()=>{\np.requestFullscreen();\nscreen.orientation.lock(h?\"landscape\":\"portrait\");\n},300);\n}}};\nscreen.orientation.addEventListener('change',f);\n\nt.textContent=\"初始化\";\nt.style.visibility=\"visible\";\nsetTimeout(()=>t.style.visibility=\"hidden\",300);\n}\n"
},
"V↑▽": {
"name": "关闭右滑进度",
"code": "clearInterval(gestureData.videoTimer);\nconst t=gestureData.tipBoxThree;\nt.style.visibility=\"hidden\";"
},
"V↑▼": {
"name": "右滑进度",
"code": "const v=gestureData.videoPlayer;\nconst t=gestureData.tipBoxThree;\nif(!gestureData.formatTime){\ngestureData.formatTime=t=>{let m=t/60,s=t%60,h=m/60;m%=60;return`${h|0}:${(m<10)?\"0\":\"\"}${m|0}:${(s<10)?\"0\":\"\"}${s|0}`};\ngestureData.showTip=()=>{t.style.visibility=\"visible\";\nt.textContent=`${gestureData.formatTime(v.currentTime)}\n${gestureData.formatTime(v.duration)}`};}\ngestureData.showTip();\nlet l=gestureData.touchEnd.screenX;gestureData.videoTimer=setInterval(()=>{let d=gestureData.touchEnd.screenX-l;if(d){\nv.currentTime+=.5*d*(1+.3*Math.abs(d)*v.duration/7200).toFixed(2);\nl=gestureData.touchEnd.screenX;\ngestureData.showTip();}},50);"
},
"V↑": {
"name": "前进 5",
"code": "if(document.fullscreenElement){\nconst v=gestureData.videoPlayer;\nconst s=gestureData.frontSpeed||10;\nv.currentTime+=s;\nconst t=gestureData.tipBoxThree;\nt.textContent=`+${s}`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>{t.style.visibility=\"hidden\";},200);}"
},
"V↑↓": {
"name": "后退 5",
"code": "const v=gestureData.videoPlayer;\nconst s=(gestureData.frontSpeed||10)+2;\nv.currentTime-=s;\nconst t=gestureData.tipBoxThree;\nif(t){\nt.textContent=`-${s}`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>t.style.visibility=\"hidden\",200);}"
},
"V→●": {
"name": "增加 5",
"code": "const v=gestureData.videoPlayer;\ngestureData.frontSpeed=(gestureData.frontSpeed||10)*2;\nconst t=gestureData.tipBoxThree;\nt.textContent=`${gestureData.frontSpeed}`;\nt.style.visibility=\"visible\";setTimeout(()=>{t.style.visibility=\"hidden\";},500);"
},
"V←●": {
"name": "减少 5",
"code": "const v=gestureData.videoPlayer;\ngestureData.frontSpeed=Math.max(5,(gestureData.frontSpeed||10)/2);\nconst t=gestureData.tipBoxThree;\nt.textContent=`${gestureData.frontSpeed}`;\nt.style.visibility=\"visible\";setTimeout(()=>{t.style.visibility=\"hidden\";},500);"
},
"V→": {
"name": "增加倍速",
"code": "const v=gestureData.videoPlayer;\nconst s=Math.min(v.playbackRate+0.25,2);\n\nconst t=gestureData.tipBoxThree;\nt.textContent=`×${s}`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>{t.style.visibility=\"hidden\";\nv.playbackRate=s;},300);"
},
"V←": {
"name": "减少倍速",
"code": "const v=gestureData.videoPlayer;\nconst s=Math.max(v.playbackRate-0.25,0.75);\n\nconst t=gestureData.tipBoxThree;\nt.textContent=`×${s}`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>{t.style.visibility=\"hidden\";\nv.playbackRate=s;},300);"
},
"V↑●": {
"name": "开 ×2",
"code": "const v=gestureData.videoPlayer;\ngestureData.lastPlayRate=v.playbackRate;\nv.playbackRate=2;\nconst t=gestureData.tipBoxThree;\nt.textContent=`×2`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>{t.style.visibility=\"hidden\";},300);"
},
"V↑○": {
"name": "关 ×2",
"code": "const v=gestureData.videoPlayer;\nv.playbackRate=gestureData.lastPlayRate;\nconst t=gestureData.tipBoxThree;\nt.textContent=`×${v.playbackRate}`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>{t.style.visibility=\"hidden\";},300);"
},
"V→←": {
"name": "视频镜像",
"code": "if(!document.getElementById('JQMA_mirror-styles')){\nconst s=document.createElement('style');\ns.id='JQMA_mirror-styles';\ns.textContent='.JQMA_video-mirror-mode{transform:scaleX(-1)!important;display:inline-block!important;transform-origin:center!important;}';\ndocument.head.appendChild(s);}\n\nconst v=gestureData.videoPlayer;\nconst isM=v.classList.contains(\"JQMA_video-mirror-mode\");\nif(!isM){v.classList.add(\"JQMA_video-mirror-mode\");}else{v.classList.remove(\"JQMA_video-mirror-mode\");}\nconst t=gestureData.tipBoxThree;\nt.textContent=`${isM?\"关闭\":\"开启\"} 镜像`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>{t.style.visibility=\"hidden\";},400);"
},
"V→←●": {
"name": "视频重载",
"code": "const v=gestureData.videoPlayer;\nconst d=v.currentTime;\nif(!v.currentSrc.startsWith('blob:'))v.load();v.play();\nconst t=gestureData.tipBoxThree;\nt.textContent=`重载`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>{t.style.visibility=\"hidden\";},400);\nlet c=0;\nconst n=setInterval(()=>{\nc++;\nif(v.currentTime>0||c>5){\nclearInterval(n);\nv.currentTime=d;\n}},500);"
},
"↑→●": {
"name": "打开图片",
"code": "let e=gestureData.touchEle;\nconst s=new Set(),g=n=>{\nif(n.matches(\"img\"))s.add(n.currentSrc||n.src);\nelse if(n.matches(\"video\")&&n.poster)s.add(n.poster);\n[...window.getComputedStyle(n).backgroundImage.matchAll(/url\\(['\"]?(.*?)['\"]?\\)/g)]\n.forEach(m=>m[1]&&s.add(m[1]))\n};\ng(e);\nif(!s.size){\n[...e.querySelectorAll(\"*\")].forEach(g);\nfor(let i=0;i<3&&!s.size&&e.parentElement;){\ne=e.parentElement;\n[...e.querySelectorAll(\"*\")].forEach(g);\ni++;}}\n[...s].slice(0,2).forEach(t=>gestureData.GM_openInTab(t,{active:1,insert:1,setParent:1}));"
},
"↑←●": {
"name": "打开视频",
"code": "const v=gestureData.getNearVideo(gestureData.touchEle);\nv?.currentSrc&&gestureData.GM_openInTab(v.currentSrc,{active:1,insert:1,setParent:1});"
},
"↑→↓●": {
"name": "复制文字",
"code": "let e=gestureData.touchEle,s;function g(e){e&&e.textContent.length>9&&(s=e.textContent.trim())}g(e);for(let i=0;!s&&e.parentElement&&i<3;i++)e=e.parentElement,g(e);window.prompt(\"文字内容:\",s);"
},
"↑↓←●": {
"name": "删除元素",
"code": "const e=gestureData.touchEle;\nlet n;\nif(!e.matches('video,html,body')&&e!=gestureData.tipBoxThree&&e!=gestureData.tipBoxTwo&&e!=gestureData.tipBox){\ne.remove();n='成功';\n}else{n='失败';}\n\nconst t=gestureData.tipBoxTwo;\nt.textContent=`删除 ${n}`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>t.style.visibility=\"hidden\",400);"
},
"↑↓→●": {
"name": "m3u8播放",
"code": "if(!location.href.startsWith(\"https://m3u8.cococut.net/player.html?m3u8=\"))location.href=\"https://m3u8.cococut.net/player.html?m3u8=\"+location.href;"
},
"◆◆": {
"name": "视频全屏 ",
"code": "const v=gestureData.getNearVideo(gestureData.touchEle);\nlet t;\nif(v){let p;\nconst h=v.videoHeight< v.videoWidth;\nconst l=()=>{\np.requestFullscreen();\nscreen.orientation.lock(h?\"landscape\":\"portrait\");};\n\nif(!v.matches('body>div>*')){\np=document.createElement('div');\np.style.cssText='position:relative;display:block;top:0;left:0;z-index:2147483647;width:300px;min-width:300px;height:300px;min-height:300px;';\nv.style.cssText='position:relative;display:block;top:0;left:0;width:100%;min-width:100%;height:100%;min-height:100%;';\ndocument.body.prepend(p);\np.prepend(v);\n}else{p=v.parentElement}\n\nt=gestureData.tipBoxThree;\np.appendChild(t);\n\nv.play();v.muted=false;v.volume=1;\nsetTimeout(()=>{l();},300);\n}else{\nt=gestureData.tipBoxTwo;\n}\nt.textContent=`全屏 ${v?'成功':'失败'}`;\nt.style.visibility=\"visible\";\nsetTimeout(()=>t.style.visibility=\"hidden\",300);"
}
},
"historyLen": 1,
"malice": 0,
"settings": {
"滑动系数": [
0.15,
0.1,
0.5,
2
],
"恶意跳转检测阈值": [
2,
1,
5,
0
],
"跳转检测白名单": "www.zhihu.com",
"文字手势": false,
"图片手势": false,
"视频手势": true,
"选词翻译": false,
"网页加速": false,
"视频下载": false
}
}