這是一款非常有創意的卡片式專案管理介面UI設計效果。在這個UI設計中,將各個項目以卡片的方式堆疊排列在螢幕上,當點擊了其中的某個項目的時候,該項目圖片會全螢幕放大,向下滾動滑鼠可以看到該項目的介紹資訊。
這個專案管理介面還提供了一個全螢幕的導航選單,使用者可以透過右上角的漢堡包圖示來觸發全螢幕選單。
使用方法
HTML結構
此卡片式專案管理介面的HTML結構分為3個部分:.cd-nav-trigger是全螢幕選單的觸發按鈕,nav.cd-primary-nav是全螢幕導覽選單,.cd-projects-container是專案無序列表的容器。
每個專案都包含一個表示專案標題的div.cd-title元素和一個表示專案資訊的div.cd-project-info元素。項目的圖片被設定為.cd-title::before偽元素的背景圖片。
<header> <a href="#0" class="cd-logo"><img src="/static/imghwm/default1.png" data-src="img/cd-logo.svg" class="lazy" alt="js實作卡片式專案管理介面UI設計效果_javascript技巧" ></a> <button class="cd-nav-trigger">Menu<span aria-hidden="true" class="cd-icon"></span></button> </header> <nav class="cd-primary-nav"> <ul> <li class="cd-label">Navigation</li> <li><a href="#0">The team</a></li> <!-- 可以有更多的导航项 --> </ul> </nav> <!-- .cd-primary-nav --> <div class="cd-projects-container"> <ul> <li class="single-project"> <div class="cd-title"> <h2 id="Project">Project 1</h2> </div> <!-- .cd-title --> <div class="cd-project-info"> <button class="cd-scroll">Scroll down</button> <div class="content-wrapper"> <p> 项目描述 </p> <!-- 额外的项目信息 --> </div> </div> <!-- .cd-project-info --> </li> <!-- 其它项目 --> </ul> </div> <!-- .cd-projects-container -->
CSS樣式
div.cd-project-info元素(專案資訊)被設定為100%的高度和相對定位。每一個單獨的項目都使用絕對定位,並設定100%的高度和放置在它們父容器.cd-project-info的左上角位置。開始它們是堆疊在一起的。
接著,第二和第三個項目被使用translateY屬性沿著Y軸向下移動,分別移動.cd-project-info高度的1/3和2/3。這樣就是3個項目分別在同一個畫面中顯示1/3的部分。
.cd-projects-container { height: 100%; position: relative; overflow: hidden; } .cd-projects-container .single-project { position: absolute; top: 0px; left: 0px; height: 100%; width: 100%; transition: transform 0.4s; } .cd-projects-container .single-project:nth-of-type(2) { transform: translateY(33.3333333333%); } .cd-projects-container .single-project:nth-of-type(3) { transform: translateY(66.6666666667%); }
.cd-title(項目的標題)被設定為33.33%(1/3視窗的高度),而它的偽元素.cd-title::before被設定為300%,實際上等於視窗的高度。
.cd-title { height: 33.3333333333%; } .cd-title::before { /* 背景图片 */ content: ''; position: absolute; top: 0; left: 0; height: 300%; width: 100%; background-position: center center; background-repeat: no-repeat; background-size: cover; } .single-project:nth-of-type(1) .cd-title::before { background-image: url(../img/img-1.jpg); }
當某個項目被選擇的時候,該項目被添加一個.selected class,該class應用了一個translateY(0)轉換。同時將該項目的兄弟元素移動到螢幕之外translateY(100%),這樣使該項目佔滿整個螢幕。
.cd-projects-container .single-project.selected { /* 被选择的项目 */ transform: translateY(0); } .cd-projects-container .single-project.selected ~ li { /* 隐藏其它项目 */ transform: translateY(100%); }
對於.cd-project-info(專案資訊),它有100%的高度,一個overflow: auto屬性(使其可以滾動),它被放置在父元素.single-project的左上角位置。它的::before偽元素是一個空白佔位,它等於螢幕視窗的寬度和高度,它的作用是讓項目圖片開始時可以全螢幕顯示,而不是被content-wrapper的內容覆蓋。
.cd-project-info { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: auto; opacity: 0; visibility: hidden; transition: opacity 0.4s, visibility 0.4s; } .cd-project-info::before { /* 用与占位,显示项目图片 */ content: ''; display: block; height: 100%; width: 100%; pointer-events: none; } .cd-project-info .content-wrapper { position: relative; z-index: 2; padding: 2em 0 3em; background-color: #FFFFFF; } .selected .cd-project-info { opacity: 1; visibility: visible; transition: opacity 0s, visibility 0s; }
對於全螢幕導航選單,開始時.cd-primary-nav元素被放置在.cd-projects-container的下面。當使用者點選了.cd-nav-trigger按鈕之後,所有的項目被移到螢幕的下方,這時全螢幕導覽選單被顯示出來。
.cd-primary-nav { position: absolute; top: 0; left: 0; /* height = (100% - 9%) - 9% is the space taken by the projects when the navigation is open */ height: 91%; width: 100%; overflow: auto; opacity: 0; } .cd-primary-nav ul { transform: translateY(50px); transition: transform 0.4s; } .cd-primary-nav.nav-open { opacity: 1; } .cd-primary-nav.nav-open ul { transform: translateY(0); } .cd-projects-container.nav-open .single-project { box-shadow: 0 0 30px rgba(0, 0, 0, 0.5); transform: translateY(91%); } .cd-projects-container.nav-open .single-project:nth-of-type(2) { transform: translateY(94%); } .cd-projects-container.nav-open .single-project:nth-of-type(3) { transform: translateY(97%); }
JavaScript
該UI設計中使用jQuery來監聽.cd-nav-trigger和.single-project元素上的點擊事件,並為對應的元素新增和移除對應的class。
js實現卡片式專案管理介面UI設計效果就為大家分享到這,希望本文所述對大家學習javascript程式設計有所幫助。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器