前端 CSS 經典:mac docker 效果

前言:瀏覽器上實現 mac docker 效果,實現思路,1. 布局,方框間距用元素代替,因為有放大縮小功能,不用元素的話,不好控制。2. 定義個 css 變量 i,用來代表放大比例。3. 確定每個元素的 i 值,根據鼠標移動,動態生成一個曲線。設計曲線函數。

效果:

代碼實現:

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><metaname="viewport"content="initial-scale=1.0, user-scalable=no, width=device-width"/><title>document</title><style>* {margin: 0;padding: 0;box-sizing: border-box;text-align: justify;}body {background: #000;color: #fff;}.docker-container {position: fixed;bottom: 10px;display: flex;justify-content: center;width: 100%;}.docker {box-sizing: content-box;height: 30px;display: flex;justify-content: center;align-items: end;padding: 5px 10px;background: rgba(255, 255, 255, 0.3);}.menu {display: flex;align-items: end;}.menu-item {border-radius: 5px;width: calc(var(--i, 1) * 30px);height: calc(var(--i, 1) * 30px);margin-bottom: calc(var(--i, 1) * 15px - 15px);background: #b4433d;border: 1px solid #ccc;}.gap {width: calc(var(--i, 1) * 10px);height: 30px;}.menu .menu-item:nth-child(3n + 1) {background: blue;}.menu .menu-item:nth-child(3n) {background: yellow;}</style></head><body><div class="docker-container"><div class="docker"><div class="menu"><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div><div class="gap"></div><div class="menu-item"></div></div></div></div><script>const docker = document.querySelector(".docker");const items = document.querySelector(".menu").children;const range = 500;const maxScale = 1.8;const layout = (curve) => {for (const item of items) {const rect = item.getBoundingClientRect();const x = rect.x + rect.width / 2;const scale = curve(x);item.style.setProperty("--i", scale);}};const baseCure = (x) => {if (x < 0) return 0;if (x > 1) return 0;return Math.sin(x * Math.PI);};const createCure = (totalXDis, topX, minY, maxY) => {return function curve(x) {const beginX = topX - totalXDis / 2;const endX = topX + totalXDis / 2;if (x < beginX) return minY;if (x > endX) return minY;const yDis = maxY - minY;return baseCure((x - beginX) / totalXDis) * yDis + minY;};};docker.onmousemove = (e) => {const curve = createCure(range, e.clientX, 1, maxScale);layout(curve);};docker.onmouseleave = () => {layout(() => 1);};</script></body>
</html>

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20270.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20270.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20270.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

信息系統項目管理師軟考高級論文教程必過論文分享

很多人提到軟考就會想到信息系統項目管理師和系統集成項目管理工程師&#xff0c;這兩個不同的軟考內容的區別不僅僅在于一個是高級&#xff0c;一個是中級&#xff0c;還有一個區別是它們的考試內容也是不同的&#xff0c;高級的信息系統項目管理師考試多了一項論文的考試&…

K-means 聚類算法和K-means ++聚類算法詳解【5】

1、通俗易懂的講解鏈接 補充鏈接&#xff0c;K- means算法的K值選擇策略&#xff1a;鏈接一&#xff0c;鏈接二???????&#xff1b; 后續關鍵點漸次補充

MySQL入門學習-查詢進階.正則表達式

在 MySQL 中&#xff0c;正則表達式是用于匹配文本模式的工具。正則表達式可以用于在查詢中進行模式匹配&#xff0c;以便更精確地查找和操作數據。 一、以下是一些常見的查詢進階操作和正則表達式的特點、使用方法以及與其他比較和高級應用的示例&#xff1a; 1. LIKE操作符…

USART串口數據包

USART串口數據包 先來看兩張圖&#xff0c;本次程序是串口收發HEX數據包&#xff0c;第二種是串口收發文本數據包&#xff0c;之后兩個圖&#xff0c;展示的就是接收數據包的思路。 在PB1這里接了一個按鍵&#xff0c;用于控制。在串口助手&#xff0c;在發送模式和接收模式都…

Debian 常用命令指南:基礎篇

Debian 是一款廣泛使用的 Linux 發行版&#xff0c;以其穩定性和安全性著稱。對于新手來說&#xff0c;掌握一些常用的命令行工具是順利使用 Debian 的第一步。本篇文章將介紹一些 Debian 系統中最常用的基礎命令&#xff0c;幫助你更好地管理和操作你的系統。 1. 系統信息相關…

JAVA攔截器的三種實現方式

JAVA攔截器的三種實現方式 一、java原生過濾器Filter二、springMVC攔截器三、aop切面實現攔截器 一、java原生過濾器Filter /*** 自定義Filter* 對請求的header 過濾token** 過濾器Filter可以拿到原始的HTTP請求和響應的信息&#xff0c;* 但是拿不到你真正處理請求方法的…

Java 基礎面試300題 (141- 170 )

Java 基礎面試300題 &#xff08;141- 170 &#xff09; 141. 編譯運行以下代碼時會發生什么&#xff1f; class Mammal {} class Cat extends Mammal { } List<Mammal> list new ArrayList<Cat>();上述代碼將出現編譯錯誤。這是因為為List指定了Mammal哺乳動物…

SpringSecurity6從入門到實戰之整合原生Filter鏈

SpringSecurity6從入門到實戰之整合原生Filter鏈 DelegatingFilterProxy 從官網上來進行學習可以看到第一個類就是DelegatingFilterProxy,我們首先看看官網給下的定義. Spring提供了一個名為DelegatingFilterProxy的過濾器實現&#xff0c;它允許在Servlet容器的生命周期和Spr…

Raid的全局熱備和獨立熱備

目錄 Hot Spare背景: 1.定義與功能 2.數據存儲與容量 3.配置模式 4.數量限制&#xff1a; 5.數據重建: 6.管理與維護 實操全局熱備和獨立熱備&#xff1a; 配置全局熱備: 配置獨立熱備: Hot Spare背景: 在RAID配置中&#xff0c;Hot Spare(熱備)是一個非常重要的概念…

amis源碼 Api接口調用解析:

Amis中傳入用戶自定義fetcher(基于fetcher做接口調用)&#xff1a; 1.embed渲染時可以傳入用戶定義的fetcher(接口調用)&#xff1a; import axios from "/libs/api.request"; //自定義的fetcher調用接口&#xff08;axios調用&#xff09; { fetcher: ()>{ ……

發現一個ai工具網站

網址 https://17yongai.com/ 大概看了下&#xff0c;這個網站收集的數據還挺有用的&#xff0c;有很多實用的ai教程。 懂ai工具的可以在這上面找找靈感。

善聽提醒遵循易經原則。世界大同只此一路。

如果說前路是一個大深坑&#xff0c;那必然是你之前做的事情做的不太好&#xff0c;當壞的時候&#xff0c;壞的結果來的時候&#xff0c;是因為你之前的行為&#xff0c;你也就不會再糾結了&#xff0c;會如何走出這個困境&#xff0c;是好的來了&#xff0c;不驕不躁&#xf…

事先預判事的結果事先預防從容應對防微杜漸

很多人呢&#xff0c;學習倪老師的知識&#xff0c;也都是從他的中醫方面&#xff0c;認識了他很多的東西呢&#xff0c;對于倪老師的知識性的總結的東西呢&#xff0c;不是很了解。 其實啊&#xff0c;倪老師也是一個&#xff0c;對于這種文化的傳承&#xff0c;有著很大很深刻…

一些匯編語言的總結

一、匯編語言的介紹 1、匯編語言和處理器指令集高度相關&#xff0c;不同指令集的匯編語言不兼容。 2、匯編語言是對機器語言的一種抽象&#xff0c;用英文字符來代表運算和控制指令&#xff0c;用英文字母和數字代表操作數。 二、常用的匯編語言 有 x86的匯編語言&#xff…

YOLOv10漲點改進:卷積魔改 | 分布移位卷積(DSConv),提高卷積層的內存效率和速度

??????本文改進內容: YOLOv10如何魔改卷積進一步提升檢測精度?提出了一種卷積的變體,稱為DSConv(分布偏移卷積),其可以容易地替換進標準神經網絡體系結構并且實現較低的存儲器使用和較高的計算速度。 DSConv將傳統的卷積內核分解為兩個組件:可變量化內核(VQK)和…

iOS編程入門:揭秘神秘的開發世界

iOS編程入門&#xff1a;揭秘神秘的開發世界 在數字化時代的浪潮中&#xff0c;iOS編程成為了許多開發者熱衷探索的領域。想要入門iOS編程&#xff0c;不僅需要掌握基礎知識&#xff0c;還需理解其獨特的生態系統。本文將通過四個方面、五個方面、六個方面和七個方面&#xff…

golang中通過反射獲取結構體Tag標簽定義的內容 函數和測試用例

當我們在go語言中定義結構體的時候&#xff0c; 經常需要給某些字段打上一個Tag標簽, 如 Name string json:"name" , 那這個標簽有和作用呢&#xff1f; 這個作用可大了&#xff0c;最為常用的是json序列化和反序列化&#xff0c; 還有各種ORM 的實體對象定義&…

C# yolov8 TensorRT +ByteTrack Demo

C# yolov8 TensorRT ByteTrack Demo 目錄 效果 說明 項目 代碼 Form2.cs YoloV8.cs ByteTracker.cs 下載 參考 效果 說明 環境 NVIDIA GeForce RTX 4060 Laptop GPU cuda12.1cudnn 8.8.1TensorRT-8.6.1.6 版本和我不一致的需要重新編譯TensorRtExtern.dll&…

微調醫療大模型,與通用大模型效果對比

下面是一份CT描述&#xff1a; “肝臟大小、形態未見明確異常。肝S2見一結節狀低密度影&#xff0c;大小約13x11mm&#xff0c;增強掃描呈明顯漸進性強化&#xff0c;延遲期呈等密度。余肝實質內未見異常密度影或強化灶。肝內大血管及其分支走行未見異常&#xff0c;肝門區層次…

ip地址告訴別人安全嗎?ip地址告訴別人會有什么風險

IP地址告訴別人安全嗎&#xff1f;在數字化時代&#xff0c;IP地址作為網絡連接的關鍵標識符&#xff0c;承載著重要的安全意義。然而&#xff0c;很多人可能并不清楚&#xff0c;輕易地將自己的IP地址告訴他人可能帶來一系列安全風險。那么&#xff0c;IP地址告訴別人會有什么…