From dadeb8bba593fa2fbee7a9f04743d94646baaa55 Mon Sep 17 00:00:00 2001 From: czc <1040398400@qq.com> Date: Mon, 5 Aug 2024 22:09:39 +0800 Subject: [PATCH] =?UTF-8?q?8.5=20=E7=9C=8B=E5=AE=8C=E4=BA=86BootScreen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.jsx | 37 +++++++++++++++++++++++++---- src/containers/background/back.scss | 6 ++++- src/containers/background/index.jsx | 6 ++++- src/index.css | 5 +++- src/index.jsx | 2 ++ src/reducers/wallpaper.js | 8 ++++++- 6 files changed, 55 insertions(+), 9 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index ddcf7a3b3..047ce37aa 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -58,6 +58,11 @@ function ErrorFallback({ error, resetErrorBoundary }) { Stop Code: {error.message} + {/* */} + {/* resetErrorBoundary应该是自定义的吧 */} @@ -72,6 +77,9 @@ function App() { const wall = useSelector((state) => state.wallpaper); const dispatch = useDispatch(); + // 这个函数的作用应该都是隐藏组件 几乎点击任何地方都会触发这个函数 + // 比如点击搜索按钮,事件的target.dataset.action为STARTSRC,就会弹出一个框,然后把其他的一些东西隐藏 + // 点击spotify,点击的target.dataset.action为spotify,然后下面的没有一个匹配的,就会把,一些开始弹窗什么的hide掉,如果有和下面匹配的,就弹出匹配的,然后其他的隐藏掉 const afterMath = (event) => { var ess = [ ["START", "STARTHID"], @@ -81,26 +89,32 @@ function App() { ["CALN", "CALNHIDE"], ["MENU", "MENUHIDE"], ]; + // console.log('afterMath'); var actionType = ""; try { actionType = event.target.dataset.action || ""; } catch (err) {} - + // getComputedStyle获取css属性和值,getPropertyValue获取这个--prefix css属性的值,有的地方有用到,搜索--prefix可以搜到一点,应该是为了特殊的过滤 var actionType0 = getComputedStyle(event.target).getPropertyValue( "--prefix", ); + // console.log(actionType); + // console.log(actionType0); ess.forEach((item, i) => { + // 这一部分是等于把ess中的操作都执行一边,用于hide一些东西 if (!actionType.startsWith(item[0]) && !actionType0.startsWith(item[0])) { + // console.log(item[1]); 这一行几乎会把所有的都答应出来,就是为了隐藏 dispatch({ type: item[1], }); } }); }; - + // 这是为了把window的鼠标右击事件先用afterMath处理一下,使得再弹出右键菜单时把什么开始栏,搜索栏,设置栏隐藏掉 window.oncontextmenu = (e) => { + // 点了邮件就隐藏,下面再按条件判断是否弹右键菜单 afterMath(e); e.preventDefault(); // dispatch({ type: 'GARBAGE'}); @@ -108,7 +122,7 @@ function App() { top: e.clientY, left: e.clientX, }; - + // e.target.dataset.menu只在桌面不为null,所以只在桌面触发 if (e.target.dataset.menu != null) { data.menu = e.target.dataset.menu; data.attr = e.target.attributes; @@ -121,14 +135,16 @@ function App() { }; window.onclick = afterMath; - + //页面加载完成触发onload 可能就是设置壁纸加载完成的作用 还不是很懂 window.onload = (e) => { dispatch({ type: "WALLBOOTED" }); }; - + // 作用就是5秒后在执行一次 loadSettings(); 和dispatch({ type: "WALLBOOTED" }); + // 因为window就是没有onstart这个属性的 useEffect(() => { if (!window.onstart) { loadSettings(); + // setTimeout是有返回值的,返回一个数字作为这个定时器的标识符 window.onstart = setTimeout(() => { // console.log("prematurely loading ( ノ ゚ー゚)ノ"); dispatch({ type: "WALLBOOTED" }); @@ -136,10 +152,21 @@ function App() { } }); + // useEffect(() => { + // console.log(wall); + // }, [wall]) + + + return (