HTML進階、CSS進階、div+css布局、HTML+css整站開發、
Js基礎教程、js內置對象常用方法、常見DOM樹操作大全、ECMAscript、DOM、BOM、定時器和焦點圖。
常見特效、例如:tab、導航、整頁滾動、輪播圖、JS制作幻燈片、彈出層、手風琴菜單、瀑布流布局、滾動事件、滾差視圖。
正則表達式、排序算法、遞歸算法、閉包、函數節流、作用域鏈、基于距離運動框架、面向對象基礎、
懸著器、DOM操作、特效和動畫、方法鏈、拖拽、變形、JQueryUI組件基本使用。
HTML5新語義標簽、HTML5表單、音頻和視頻、離線和本地存儲、SVG、Web Socket、Canvas.
CSS3新選擇器、偽元素、臉色表示法、邊框、陰影、background系列屬性改變、Transition、動畫、景深和深透、3D效果制作、Velocity.js框架、元素進場、出場策略、炫酷CSS3網頁制作。
響應式概念、媒體查詢、響應式網站制作、刪格系統、刪格系統原理、Bootstrap常用模板、LESS和SASS。
跨終端WEB和主流設備簡介、視口、流式布局、彈性盒子、rem、移動終端JavaScript事件、手機中常見JS效果制作、Zepto.js、手機聚劃算頁面、手機滾屏。
服務器基礎知識、Apache服務器和其他WEB服務器介紹、Apache服務器搭建、HTTP介紹。
PHP基礎語法、使用PHP處理簡單的GET或者POST請求、
Ajax簡介和異步的概念、Ajax框架的封裝、XMLHttpRequest對象詳細介紹方法、兼容性處理方法、Ajax框架的封裝、Ajax中緩存問題、XML介紹和使用。
JSON和JSON解析、數據綁定和模板技術、JSONP、跨域技術、圖片預讀取和lazy-load技術、JQuery框架中的AjaxAPI、使用Ajax實現爆布流案例額。
從內存角度到理解JS面向對象、基本類型、復雜類型、原型鏈、ES6中的面向對象、屬性讀寫權限、設置器、訪問器。
繼承性、多態性、封裝性、接口。
面向對象編程思維、單例模式、工廠模式、策略模式、觀察者模式、模板方法模式、代理模式、裝飾者模式、適配器模式、面向切面編程。
事件流、冒泡、捕獲、事件對象、事件框架、選擇框架。
運動原理、單物體運動框架、多物體運動框架、運動框架面向對象封裝。
JQuery框架雛形、可擴展性、模塊化、封裝屬于傳智自己的框架。
面向組件編程的方式、面向組件編程的實現原理、面向組件編程實戰、基于組件化思想開發網站應用程序。
AMD設計規范、CMD設計規范、RequireJS,LoadJS、淘寶的SeaJS。
GIT/SVN、Yeoman腳手架、NPM/Bower依賴管理工具、Grunt/Gulp/Webpack。
Angular.js、Backbone.js、Knockout/Ember。
React.js、Vue.js、Zepto.js。
WebApp/NativeApp/HybirdApp簡介、Cordova簡介、與PhoneGap之間的關系、開發環境搭建、Cordova實戰(創建項目,配置,編譯,調試,部署發布)。
Ionic簡介和同類對比、模板項目解析、常見組件及使用、結合Angular構建APP、常見效果(下拉刷新,上拉加載,側滑導航,選項卡)。
React Native簡介、React Native環境配置、創建項目,配置,編譯,調試,部署發布、原生模塊和UI組件、原生常用API。
HTML5+中國產業聯盟、HTML5 Plus Runtime環境、HBuilder開發工具、MUI框架、H5+開發和部署。
Node.js發展、生態圈、Io.js、Linux/Windows/OS X環境配置、REPL環境和控制臺程序、異步編程,非阻塞I/O、模塊概念,模塊管理工具、開發流程,調試,測試。
全局對象global,process,console,util、事件驅動,事件發射器、加密解密,路徑操作,序列化和反序列化、文件流操作、HTTP服務端與客戶端、Socket.IO。
HTTP協議,請求響應處理過程、關系型數據庫操作和數據訪問、非關系型數據庫操作和數據訪問、原生的Node.js開發Web應用程序、Web開發工作流、Node.js開發Blog案例。
Express簡介+MVC簡介、Express常用API、Express路由模塊、Jade/Ejs模板引擎、使用Express重構Blog案例、Koa等其他常見MVC框架。
需求與設計、賬戶模塊注冊登錄、會員中心模塊、前臺展示模塊、購物車,訂單結算、在線客服即時通訊模塊。
MacOS自帶Python路徑為:/System/Library/Frameworks/Python.framework/Versions
自行安裝Python路徑為:/Library/Frameworks/Python.framework/Versions/
打開Terminal
切換工作路徑:cd /System/Library/Frameworks/Python.framework/Versions/current/bin
打印相對路徑Python版本:./python --version
打印當前用戶Python版本:python --version
如下圖可以看到,系統Python版本為
2.7
,當前用戶Python為3.7
使用which
命令查看各版本Python的文件路徑
系統命令默認路徑/usr/bin
(系統預裝的可執行文件,隨系統升級而變化)
用戶命令默認路徑/usr/local/bin
(用戶安裝的可執行文件,不隨系統升級影響)
其中,usr
是Unix System Resource
可以看到
/usr/bin
中有python
可執行命令,其版本為2.7.18
,而/usr/local/bin
則沒有python
,存放的是python3.7
的執行命令
在Mac電腦上安裝Python環境可以按照以下步驟進行操作:
訪問Python官方網站(https://www.python.org/downloads/macos/)下載適用于Mac的Python安裝包。根據你的操作系統版本選擇合適的安裝包,通常選擇最新的穩定版本。
雙擊下載的Python安裝包,會出現一個安裝向導窗口。點擊"Continue"繼續安裝。
在安裝向導窗口中,可以選擇安裝Python的位置和其他可選組件。通常建議保持默認設置,然后點擊"Install"開始安裝。
安裝過程中,系統可能會要求輸入管理員密碼。輸入密碼并點擊"Install Software"繼續安裝。
安裝過程可能需要一些時間,請耐心等待直到安裝完成。
安裝完成后,打開終端應用程序(Terminal),輸入以下命令驗證Python安裝是否成功:
python3 -V
如果成功安裝,終端會顯示Python的版本號。
在產品線或者項目組中,開發工程師絕對是最大的群體,包含前端開發、后端開發、測試等崗位。之前做交互設計師時,跟開發人員直接的溝通并不多,主要在交互設計宣講和還原度測試時有些接觸。即使有些糾纏,也會通過產品經理進行協調,溝通的難度并不大。轉崗產品經理后,主要溝通對象就變成了開發工程師。今天來聊聊我遇到過或合作過的“開發大佬”們。
干貨!四個章節深度解析「組件」知識點|蘭亭妙微UI設計公司
第一章:組件的定義和基本概念
在軟件開發領域,組件是指獨立的、可重用的軟件模塊,它們具有特定的功能和接口,可以被組合成更大的軟件系統。組件可以是軟件對象、類、庫、模塊或其他單位。它們通過定義輸入和輸出接口,以及實現特定功能來提供服務。
組件的基本概念包括以下幾個方面:
1.1 組件容器:組件容器是一個環境,用于加載、管理和執行組件。容器提供對組件的生命周期管理、通信和部署支持。組件容器可以是運行時環境(如操作系統、應用服務器)或特定的框架(如Java EE容器、ASP.NET容器)。
1.2 組件接口:組件接口定義了組件對外提供的服務和合約。它包括輸入參數、輸出結果以及可能的異常。接口可以通過編程語言的接口、類、方法或其他機制來定義。
1.3 組件協作:組件可以通過協作來完成更復雜的任務。協作可以通過組件之間的接口調用、事件觸發、消息傳遞等方式進行。協作可以實現任務的拆分、并行處理和功能擴展。
1.4 組件復用:組件的重要特性是可復用性。組件的設計和實現應該考慮到復用的需求,使其可以在不同的上下文中被重復使用。組件復用可以提高開發效率、降低維護成本,并促進軟件系統的生態系統發展。
第二章:組件化開發和架構模式
2.1 組件化開發:組件化開發是一種軟件開發方法,通過將軟件系統劃分為獨立的組件來提高開發效率和質量。組件化開發促進了模塊化、可復用、可測試和可維護的代碼編寫。它還鼓勵團隊協作和并行開發。
2.2 組件化架構模式:組件化架構模式是一種組織和管理組件的方式。常見的組件化架構模式包括面向服務架構(SOA)、微服務架構和組件協作模式等。這些架構模式通過定義組件之間的接口、通信和協議,實現了松耦合、可擴展和可替換的軟件系統。
第三章:組件的優勢和挑戰
3.1 組件的優勢:組件化開發具有許多優勢。首先,它提供了代碼重用和模塊化的機制,減少了開發工作量和維護成本。其次,組件可以提供標準化的接口,促進了團隊協作和模塊復用。此外,組件可以獨立測試和部署,提高了系統的可靠性和可擴展性。
3.2 組件的挑戰:盡管組件化開發具有許多優勢,但也存在一些挑戰。首先,組件的設計和實現需要額外的工作和時間。其次,組件之間的協作和通信涉及到復雜的依賴關系和調試過程。此外,組件的版本管理和升級可能導致一些兼容性和穩定性的問題。
第四章:組件化開發實踐和案例分析
4.1 組件化開發實踐:組件化開發需要結合具體的技術和工具來實現。常見的組件化開發實踐包括使用面向對象編程、設計模式、依賴注入和模塊化打包工具等。此外,組件化開發還需要規范和標準來指導開發和集成。
4.2 組件化開發案例分析:組件化開發已經在軟件開發領域得到廣泛應用。例如,Android開發中的組件化架構、Java EE中的Enterprise JavaBean、.NET中的組件模型等。這些案例提供了關于組件化開發的實踐經驗和最佳實踐。
藍藍設計,工作室2008年開始,2011年正式成立北京蘭亭妙微科技有限公司,主創清華團隊,專注軟件和互聯網ui設計開發。擅長企業信息化管理、監控、大數據軟件UIUE咨詢和設計開發服務。立足UI,一直在學習進步。
藍藍設計,秉承設計優秀,不斷超越的理念,誠信敬業、專業耐心的工作作風,進行設計服務創新,幫助企業進行軟件和互聯網產品的界面設計及開發升級,提供卓越的解決方案。對軟件界面用戶體驗與交互設計與實現,國際化標準和流行趨勢,進行不斷的研究和實踐,擁有豐富的解決問題經驗。
讓用戶輸密碼的正確姿勢!簡化密碼設計的三個小秘籍
2023-06-28 15:50北京北京蘭亭妙微科技有限公司官方帳號
隨著互聯網的普及和數字化時代的來臨,密碼的重要性不言而喻。然而,很多人在設計密碼時往往面臨記憶難題和安全性問題。為了幫助用戶設計更簡化且安全的密碼,本文將介紹三個小秘籍。
一、使用密碼管理工具
密碼管理工具是一種方便且安全的方式來管理和存儲密碼。它們通常提供加密的存儲空間,可以儲存各種賬戶的用戶名和密碼。用戶只需記住一個主密碼,就能夠訪問和管理所有其他密碼。這樣,用戶可以選擇更復雜、更安全的密碼,而不必擔心記憶的問題。此外,密碼管理工具通常還提供自動生成密碼的功能,確保密碼的隨機性和安全性。一些常見的密碼管理工具包括LastPass、1Password和Keepass等。
二、使用短語或句子作為密碼
傳統的密碼通常由字符、數字和特殊符號組成,很難記憶且容易被猜測。相比之下,使用短語或句子作為密碼可以更容易記住且更安全。選擇一個有意義的短語或句子,并將其轉化為密碼。例如,"ILoveToTravelTheWorld!",這個短語可以轉化為密碼"Ilv2ttw!"。這樣的密碼不僅容易記憶,而且由于包含了大小寫字母、數字和特殊符號,具備了一定的安全性。
三、使用多因素身份驗證
多因素身份驗證是一種提高賬戶安全性的重要方式。除了使用密碼外,多因素身份驗證要求用戶提供第二個驗證因素,如手機驗證碼、指紋識別或硬件安全密鑰等。這樣,即使密碼被泄露,黑客也無法輕易訪問賬戶。許多在線服務提供了多因素身份驗證選項,用戶應該積極開啟并使用這個功能。
綜上所述,設計簡化且安全的密碼并不是一件困難的事情。通過使用密碼管理工具、使用短語或句子作為密碼以及使用多因素身份驗證,用戶可以更好地保護自己的賬戶安全。重要的是,用戶應該時刻保持警惕,定期更換密碼,并避免在多個賬戶中使用相同的密碼,以確保個人信息的安全。
今日分享這篇文章是藍藍設計的原創文章,未來將會持續在平臺上分享關于設計行業的文章。此外藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,添加vx藍小助ben_lanlan,報下信息,藍小助會請您入群。同時添加藍小助我們將會為您提供優秀的設計案例和設計素材等,歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司
以下是在 JavaScript 和 Google 地圖 API 中添加點擊事件,根據國家進行不同操作的示例代碼:
//創建地圖對象 var map = new google.maps.Map(document.getElementById('map'), { zoom: 4, center: {lat: 37.0902, lng: -95.7129} }); //創建信息窗口(infowindow) var infowindow = new google.maps.InfoWindow(); //創建一個數組來存儲標記 var markers = []; //為每個國家添加點擊事件 google.maps.event.addListener(map, 'click', function(event) { //獲取點擊位置的經緯度坐標 var latLng = event.latLng; //使用地理編碼器(geocoder)將經緯度坐標轉換為地址信息 var geocoder = new google.maps.Geocoder(); geocoder.geocode({'location': latLng}, function(results, status) { if (status === 'OK') { if (results[0]) { //獲取點擊位置所在的國家名稱 var countryName = ''; for (var i = 0; i < results[0].address_components.length; i++) { var component = results[0].address_components[i]; if (component.types.indexOf('country') !== -1) { countryName = component.long_name; break; } } //根據國家名稱執行相應操作 switch (countryName) { case 'China': alert('您點擊了中國'); break; case 'United States': alert('您點擊了美國'); break; default: alert('您點擊了' + countryName); } //創建標記并將其添加到地圖上 var marker = new google.maps.Marker({ position: latLng, map: map });
藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~ 希望得到建議咨詢、商務合作,也請與我們聯系01063334945。 分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。 藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司。
要用 Cesium.js 制作一個球形地圖,可以按照以下步驟:
在 HTML 文件中添加 Cesium.js 庫文件的引用??梢酝ㄟ^以下方式獲取最新版的 Cesium.js 庫文件鏈接:https://cesium.com/downloads/。
創建一個 div 元素來容納地球場景,并設置其樣式以占滿整個屏幕。
在 JavaScript 文件中創建 Cesium.Viewer 對象并將其附加到之前創建的 div 元素上。這將在屏幕上顯示一個球體,并啟動 Cesium.js 場景。
可以通過更改 Viewer 對象的屬性來自定義地球的外觀和行為。例如,可以更改攝像機的位置和方向、加載不同類型的地圖數據、添加標記等等。
以下是一個簡單的示例代碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>My Cesium App</title> <style> #cesiumContainer { width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden; } </style> <script src="https://cesium.com/downloads/cesiumjs/releases/1.85/Build/Cesium/Cesium.js"></script> <link rel="stylesheet"> </head> <body> <div id="cesiumContainer"></div> <script> var viewer = new Cesium.Viewer('cesiumContainer'); </script> </body> </html>
這將創建一個簡單的地球場景,可以在其中添加更
藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~ 希望得到建議咨詢、商務合作,也請與我們聯系01063334945。 分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。 藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司。
目錄
動畫(animation)是CSS3中具有顛覆性的特征之一,可通過設置多個節點來精確控制一個或一組動畫,常 用來實現復雜的動畫效果。
相比較過渡,動畫可以實現更多變化,更多控制,連續自動播放等效果。
制作動畫分為兩步: 1.先定義動畫 2.再使用(調用)動畫
1. 用keyframes 定義動畫(類似定義類選擇器)
@keyframes 動畫名稱 {
0%{
width:100px;
}
100%{
width:200px;
}
}
動畫序列
0% 是動畫的開始,100% 是動畫的完成。這樣的規則就是動畫序列。
在 @keyframes 中規定某項 CSS 樣式,就能創建由當前樣式逐漸改為新樣式的動畫效果。
動畫是使元素從一種樣式逐漸變化為另一種樣式的效果。您可以改變任意多的樣式任意的次數。
請用百分比來規定變化發生的時間,或用關鍵詞 "from" 和 "to",等同于 0% 和 100%。
2. 元素使用動畫
div {
width: 200px;
height: 200px;
background-color: aqua;
margin: 100px auto; /* 調用動畫 */
animation-name: 動畫名稱;
/* 持續時間 */ animation-duration: 持續時間; }
-
<!DOCTYPE html>
-
<html lang="en">
-
-
<head>
-
<meta charset="UTF-8">
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
-
<title>Document</title>
-
<style>
-
/* 我們想頁面一打開,一個盒子就從左邊走到右邊 */
-
/* 1. 定義動畫 */
-
-
@keyframes move {
-
/* 開始狀態 */
-
0% {
-
transform: translateX(0px);
-
}
-
/* 結束狀態 */
-
100% {
-
transform: translateX(1000px);
-
}
-
}
-
-
div {
-
width: 200px;
-
height: 200px;
-
background-color: pink;
-
/* 2. 調用動畫 */
-
/* 動畫名稱 */
-
animation-name: move;
-
/* 持續時間 */
-
animation-duration: 2s;
-
}
-
</style>
-
</head>
-
-
<body>
-
<div></div>
-
</body>
-
-
</html>
-
<!DOCTYPE html>
-
<html lang="en">
-
-
<head>
-
<meta charset="UTF-8">
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
-
<title>Document</title>
-
<style>
-
/* from to 等價于 0% 和 100% */
-
/* @keyframes move {
-
from {
-
transform: translate(0, 0);
-
}
-
to {
-
transform: translate(1000px, 0);
-
}
-
} */
-
/* 動畫序列 */
-
/* 1. 可以做多個狀態的變化 keyframe 關鍵幀 */
-
/* 2. 里面的百分比要是整數 */
-
/* 3. 里面的百分比就是 總的時間(我們這個案例10s)的劃分 25% * 10 = 2.5s */
-
-
@keyframes move {
-
0% {
-
transform: translate(0, 0);
-
}
-
25% {
-
transform: translate(1000px, 0)
-
}
-
50% {
-
transform: translate(1000px, 500px);
-
}
-
75% {
-
transform: translate(0, 500px);
-
}
-
100% {
-
transform: translate(0, 0);
-
}
-
}
-
-
div {
-
width: 100px;
-
height: 100px;
-
background-color: pink;
-
animation-name: move;
-
animation-duration: 10s;
-
}
-
</style>
-
</head>
-
-
<body>
-
<div>
-
-
</div>
-
</body>
-
-
</html>
-
<!DOCTYPE html>
-
<html lang="en">
-
-
<head>
-
<meta charset="UTF-8">
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
-
<title>Document</title>
-
<style>
-
@keyframes move {
-
0% {
-
transform: translate(0, 0);
-
}
-
100% {
-
transform: translate(1000px, 0);
-
}
-
}
-
-
div {
-
width: 100px;
-
height: 100px;
-
background-color: pink;
-
/* 動畫名稱 */
-
animation-name: move;
-
/* 持續時間 */
-
/* animation-duration: 2s; */
-
/* 運動曲線 */
-
/* animation-timing-function: ease; */
-
/* 何時開始 */
-
animation-delay: 1s;
-
/* 重復次數 iteration 重復的 conut 次數 infinite 無限 */
-
/* animation-iteration-count: infinite; */
-
/* 是否反方向播放 默認的是 normal 如果想要反方向 就寫 alternate */
-
/* animation-direction: alternate; */
-
/* 動畫結束后的狀態 默認的是 backwards 回到起始狀態 我們可以讓他停留在結束狀態 forwards */
-
/* animation-fill-mode: forwards; */
-
/* animation: name duration timing-function delay iteration-count direction fill-mode; */
-
/* animation: move 2s linear 0s 1 alternate forwards; */
-
/* 前面2個屬性 name duration 一定要寫 */
-
/* animation: move 2s linear alternate forwards; */
-
}
-
-
div:hover {
-
/* 鼠標經過div 讓這個div 停止動畫,鼠標離開就繼續動畫 */
-
animation-play-state: paused;
-
}
-
</style>
-
</head>
-
-
<body>
-
<div>
-
-
</div>
-
</body>
-
-
</html>
linear 勻速
animation:動畫名稱 持續時間 運動曲線 何時開始 播放次數 是否反方向 動畫起始或者結束的狀態
animation: myfirst 5s linear 2s infinite alternate;
簡寫屬性里面不包含 animation-play-state
暫停動畫:animation-play-state: puased; 經常和鼠標經過等其他配合使用
想要動畫走回來 ,而不是直接跳回來:animation-direction : alternate
盒子動畫結束后,停在結束位置: animation-fill-mode : forwards
還沒聽。。
animation-timing-function:規定動畫的速度曲線,默認是“ease“
-
<!DOCTYPE html>
-
<html lang="en">
-
-
<head>
-
<meta charset="UTF-8">
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
-
<title>Document</title>
-
<style>
-
div {
-
overflow: hidden;
-
font-size: 20px;
-
width: 0;
-
height: 30px;
-
background-color: pink;
-
/* 讓我們的文字強制一行內顯示 */
-
white-space: nowrap;
-
/* steps 就是分幾步來完成我們的動畫 有了steps 就不要在寫 ease 或者linear 了 */
-
animation: w 4s steps(10) forwards;
-
}
-
-
@keyframes w {
-
0% {
-
width: 0;
-
}
-
100% {
-
width: 200px;
-
}
-
}
-
</style>
-
</head>
-
-
<body>
-
<div>世紀佳緣我在這里等你</div>
-
</body>
-
-
</html>
藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~ 希望得到建議咨詢、商務合作,也請與我們聯系01063334945。 分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。 藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司。
一、CSS3 2D變形(利用Transfrom方法)
1、rotate(angle)
元素順時針旋轉給定的角度。允許負值,元素將逆時針旋轉。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<style>
div{
width: 100px;
height: 100px;
border: 1px solid red;
transform: rotate(30deg) ;
margin: 200px auto;
}
</style>
<body>
<div>
</div>
</body>
</html>
效果如圖
如果當rotate里面的值為負數時,比如ratate(-10deg),效果如圖:
2、 translate(x,y)方法
通過 translate() 方法,元素從其當前位置移動,根據給定的 left(x 坐標) 和 top(y 坐標) 位置參數。也就是相對于頁面左部和頂部的距離
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> div { width: 100px; height: 100px; border: 1px solid red; transform: translate(20px, 20px); } </style> <body> <div></div> </body> </html>
![]()
效果如下
初次之外還有其他的參數
transform: translate(200px);
如果只帶一個參數,這個參數代表的是x方向位移值,y方向位移為0
transform: translateX(200px);
對X方向移動
transform: translateY(200px);
對Y方向移動
3、scale() 方法
通過 scale() 方法,元素的尺寸會增加或減少,根據給定的寬度(X 軸)和高度(Y 軸)參數
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> div { width: 100px; height: 100px; border: 1px solid red; transform: scale(2,0.5); margin: 20px auto; } </style> <body> <div></div> </body> </html>
![]()
效果如圖
可以看到,長邊變為了原來的兩倍,寬邊變為了原來的0.5倍
transform: scale(1.5);x軸和y軸都放大1.5倍
transform: scaleX(1.5);x軸放大1.5倍
transform: scaleY(1.5);y軸放大1.5倍
transform-origin: left top;改變中心點位置為左上角,當然還可以自由搭配,右下(right bottom),右上(right top)
4、 skew() 方法
通過 skew() 方法,元素翻轉給定的角度,根據給定的水平線(X 軸)和垂直線(Y 軸)參數。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> div { width: 100px; height: 100px; border: 1px solid red; transform: skew(30deg,30deg); margin: 200px auto; } </style> <body> <div></div> </body> </html>
![]()
效果如圖
意思就是:圍繞 X 軸把元素翻轉 30 度,圍繞 Y 軸翻轉 30 度??赡芸雌饋肀容^抽象
transform: skew(230deg);如果只帶一個參數,只有x軸方向的扭曲
transform: skewX(230deg); 對X軸進行翻轉
transform: skewY(230deg); 對Y軸進行翻轉
其實還是很好理解的,比如兩個圖疊加在一起
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> .demo{ width: 200px; height: 200px; margin: 200px auto; border: 1px solid #000; } .box{ width: 200px; height: 200px; border: 1px solid red; transform: skew(5deg,0deg); } </style> <body> <div class="demo"> <div class="box"></div> </div> </body> </html>
![]()
可以看到,所謂的X軸翻轉,其實就是x方向的移動,上面的線向左移動5px,下面的線向右移動5px,加入Y也一樣
比如:transform: skew(0deg,5deg);
左邊的線向上移動5px,右邊的線向下移動5px,同時改變時 transform: skew(5deg,5deg);
最好記的方式就是對角線的同時移動,左上右下是排斥,左下右上是吸引
5、matrix() 方法
matrix() 方法把所有 2D 轉換方法組合在一起。
matrix() 方法需要六個參數,包含數學函數,允許您:旋轉、縮放、移動以及傾斜元素。
如題:將div右移100px,下移200px,旋轉30度,x軸縮放1.5倍,y軸縮放2倍。
(1)transform: translate(100px, 200px) rotate(30deg) scale(1.5, 2);
(2)transform: matrix(1.299, 0.75, -1, 1.732, 100, 200)
計算方法
效果如圖
6、transform-origin 屬性
允許你改變被轉換元素的位置
語法: transform-origin: x-axis y-axis z-axis;
屬性值:
x-axis :定義視圖被置于 X 軸的何處??赡艿闹担簂eft,center,right,length,%。
y-axis :定義視圖被置于 Y 軸的何處??赡艿闹担簍op,center,bottom,length,%。
z-axis :定義視圖被置于 Z 軸的何處??赡艿闹担簂ength。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>transform-origin</title> <style> *{ margin: 0; padding: 0; } .demo{ width: 200px; height: 200px; margin: 200px auto; border: 1px solid #000; } .box{ width: 200px; height: 200px; background-color: #f00; transform: rotate(60deg); transform-origin: right bottom; } </style> </head> <body> <div class="demo"> <div class="box"></div> </div> </body> </html>
![]()
效果如圖
形象的來說,就是規定你從哪個角開始旋轉,比如規定右下角旋轉,則圖形以右下角為旋轉角,順時針旋轉60°
二、CSS3 3D變形
1、perspective屬性
perspective 屬性定義 3D 元素距視圖的距離,以像素計。該屬性允許您改變 3D 元素查看 3D 元素的視圖。
當為元素定義 perspective 屬性時,其子元素會獲得透視效果,而不是元素本身。
注釋:perspective 屬性只影響 3D 轉換元素。
語法: perspective: number|none;
屬性值:
number :元素距離視圖的距離,以像素計。
none :默認值。與 0 相同。不設置透視
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>perspective</title> <style> .father{ position: relative; width: 200px; height: 200px; padding: 10px; margin: 200px auto; border: 1px solid #999; perspective: 150px; } .son{ width: 100px; height: 50px; padding: 50px; position: absolute; border: 1px solid #f00; background-color: #0ff; transform: rotateX(45deg); } </style> </head> <body> <div class="father"> <div class="son"></div> </div> </body> </html>
![]()
效果如圖
2、trasform-style屬性
transform-style 屬性規定如何在 3D 空間中呈現被嵌套的元素。
注釋:該屬性必須與 transform 屬性一同使用。
語法: transform-style: flat|preserve-3d;
屬性值:
flat :子元素將不保留其 3D 位置。
preserve-3d :子元素將保留其 3D 位置。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>transform-style</title> <style> .wrapper{ width: 200px; height: 100px; margin: 200px auto; } .div1,.div2{ width: 200px; height: 100px; padding: 20px; } .div1{ background-color: #f00; transform: rotateY(30deg); transform-style: preserve-3d; } .div2{ background-color: #655fff; transform: rotateY(45deg); } </style> </head> <body> <div class="wrapper"> <div class="div1">div1 <div class="div2">div2</div> </div> </div> </body> </html>
![]()
效果如圖
3、CSS3過渡
transition 屬性是一個簡寫屬性,用于設置四個過渡屬性:
transition-property:規定設置過渡效果的 CSS 屬性的名稱。
transition-duration:規定完成過渡效果需要多少秒或毫秒。
transition-timing-function:規定速度效果的速度曲線。
transition-delay:定義過渡效果何時開始。
注釋:請始終設置 transition-duration 屬性,否則時長為 0,就不會產生過渡效果。
語法: transition: property duration timing-function delay;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>transition過渡動畫</title> <style> .box{ width: 100%; height: 300px; position: relative; border: 1px solid #eee; } .demo{ width: 100px; height: 100px; background-color: #f00; position: absolute; left: 100px; top: 100px; transform: rotate(0deg); transition-property: all; transition-duration: .8s; } .box:hover .demo{ left: 500px; width: 300px; transform: rotate(45deg); } </style> </head> <body> <div class="box"> <div class="demo"></div> </div> </body> </html>
![]()
或者
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>transition過渡動畫</title> <style> .box{ width: 100%; height: 300px; position: relative; border: 1px solid #eee; } .demo{ width: 100px; height: 100px; background-color: #f00; position: absolute; left: 100px; top: 100px; transform: rotate(0deg); transition: left 2s ease 500ms, width 5s ease-in-out; } .box:hover .demo{ left: 500px; width: 300px; transform: rotate(45deg); } </style> </head> <body> <div class="box"> <div class="demo"></div> </div> </body> </html>
![]()
可以自行實驗一下
4、CSS3動畫
使用@keyframes
通過 @keyframes 規則,您能夠創建動畫。
創建動畫的原理是,將一套 CSS 樣式逐漸變化為另一套樣式。
在動畫過程中,您能夠多次改變這套 CSS 樣式。
以百分比來規定改變發生的時間,或者通過關鍵詞 “from” 和 “to”,等價于 0% 和 100%。
0% 是動畫的開始時間,100% 動畫的結束時間。
為了獲得最佳的瀏覽器支持,您應該始終定義 0% 和 100% 選擇器。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>關鍵幀動畫</title> <style> .box{ width: 100%; height: 800px; position: relative; } .demo{ width: 100px; height: 100px; background-color: #ff0000; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; position: absolute; /*animation: move 5s ease-in-out infinite alternate ;*/ -webkit-animation: move 5s ease-in-out 500ms 2 alternate ; -moz-animation: move 5s ease-in-out 500ms 2 alternate ; -ms-animation: move 5s ease-in-out 500ms 2 alternate ; -o-animation: move 5s ease-in-out 500ms 2 alternate ; animation: move 5s ease-in-out 500ms 2 alternate ; } @keyframes move { 0%{ left: 100px; } 45%{ left: 200px; top: 100px; background-color: #00f; } 75%{ left: 400px; top: 300px; background-color: #64ff77; } 100%{ left: 500px; top: 500px; background-color: #ff4975; } } </style> </head> <body> <div class="box"> <div class="demo"></div> </div> </body> </html>
![]()
或者
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>關鍵幀動畫</title> <style> .box{ width: 100%; height: 800px; position: relative; } .demo{ width: 100px; height: 100px; background-color: #ff0000; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; position: absolute; /*animation: move 5s ease-in-out infinite alternate ;*/ -webkit-animation: move 5s ease-in-out 500ms 2 alternate ; -moz-animation: move 5s ease-in-out 500ms 2 alternate ; -ms-animation: move 5s ease-in-out 500ms 2 alternate ; -o-animation: move 5s ease-in-out 500ms 2 alternate ; animation: move 5s ease-in-out 500ms 2 alternate ; } @keyframes move { from{ left: 100px; } to{ left: 500px; background-color: #00f; } } </style> </head> <body> <div class="box"> <div class="demo"></div> </div> </body> </html>
![]()
animation:move 5s ease-in-out 500ms 2 alternate
move:表示animation-name ,動畫名稱
5s:表示animation-duration,時長
ease-in-out:表示animation-timing-function 規定動畫的速度曲線
(
除此以外還有:
linear:動畫從頭到尾的速度是相同的。
ease:默認。動畫以低速開始,然后加快,在結束前變慢。
ease-in:動畫以低速開始。
ease-out:動畫以低速結束。
ease-in-out:動畫以低速開始和結束。
)
500ms:表示animation-delay,規定在動畫開始之前的延遲。
2 :表示animation-iteration-count,規定動畫應該播放的次數。
alternate:表示animation-direction,規定是否應該輪流反向播放動畫,如果 animation-direction 值是 “alternate”,則動畫會在奇數次數(1、3、5 等等)正常播放,而在偶數次數(2、4、6 等等)向后播放。。
藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~
希望得到建議咨詢、商務合作,也請與我們聯系01063334945。
分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司。
本篇文章通過代碼示例介紹一下使用純CSS畫圓環的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
畫圓環思想很簡單:首先畫兩個圓,設置不同的背景色;然后讓兩個圓的圓心重合即可。
難度系數
☆☆
HTML
解析:此處有父容器
CSS.container {
position: relative;
top: 0;
left: 0;
width: 300px;
height: 300px;
background-color: lightgrey;
}
.ring-style {
display: inline-block;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: blue;
width: 260px;
height: 260px;
border-radius: 260px;
}
.ring-style::before {
content: ' ';
display: inline-block;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: white;
width: 200px;
height: 200px;
border-radius: 200px;
}
解析:設置元素的寬高、圓角效果,即可畫出一個圓
通過 ::before 偽元素和本體元素,創建兩個圓
通過基于父容器的絕對定位,設置 top、left、translate 屬性,讓元素基于父容器水平、豎直居中,即可讓兩個圓的圓心重合
【推薦教程:CSS視頻教程 】
效果圖
知識點border-radius
::before && ::after
元素水平、豎直居中
藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~
希望得到建議咨詢、商務合作,也請與我們聯系01063334945。
分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司。
藍藍設計的小編 http://www.syprn.cn