Mac蘋果系統底部圖標菜單動畫代碼

WebKit Mac HTML 蘋果公司 Mation樑 2017-06-14

Mac蘋果系統底部圖標菜單動畫代碼

更多特效代碼請添加HTML5前端交流群581549454

需要文檔版源碼來我的前端群581549454,已上傳到群文件

源代碼

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>仿MacOS蘋果系統底部圖標菜單動畫代碼</title>

<style>

html, body {

padding: 0px;

margin: 0px;

background: #222;

font-family: 'Ubuntu', sans-serif;

color: #FFF;

height: 100%;

}

body {

background: url("img/bg.jpg");

background-size: cover;

background-position: center;

}

.dockposition {

position: absolute;

height: 100px;

width: 100%;

bottom: 0px;

}

.dockposition .content {

width: 680px;

margin: auto;

height: 100%;

background: rgba(255, 255, 255, 0.5);

border-radius: 4px 4px 0px 0px;

position: relative;

}

.dockposition .content .back {

position: absolute;

height: 100%;

width: 100%;

left: 0px;

overflow: hidden;

}

.dockposition .content .back:after {

content: '';

background: rgba(255, 255, 255, 0.25);

width: 100%;

height: 100%;

top: 0px;

left: 0px;

position: absolute;

-webkit-filter: blur(10px);

filter: blur(10px);

}

.dockposition .icons {

height: 100%;

display: -webkit-box;

display: -ms-flexbox;

display: flex;

}

.dockposition .icons > .icon {

margin: auto;

display: inline-block;

box-sizing: border-box;

width: 70px;

height: 70px;

border-radius: 10px;

background: rgba(255, 255, 255, 0.75);

border: 0px solid rgba(0, 0, 0, 0.75);

box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.25);

text-align: center;

display: -webkit-box;

display: -ms-flexbox;

display: flex;

position: relative;

-webkit-user-select: none;

-moz-user-select: none;

-ms-user-select: none;

user-select: none;

-webkit-transition: all 0.5s;

transition: all 0.5s;

-webkit-transform-style: flat;

transform-style: flat;

outline: none;

cursor: pointer;

}

.dockposition .icons > .icon:focus:not(#downloads) {

background: rgba(255, 255, 255, 0.5);

-webkit-animation: bounce 1s;

animation: bounce 1s;

}

.dockposition .icons > .icon i {

margin: auto;

color: rgba(0, 0, 0, 0.75);

font-size: 36px;

-webkit-user-select: none;

-moz-user-select: none;

-ms-user-select: none;

user-select: none;

}

.dockposition .icons > .icon .title {

z-index: 2;

position: absolute;

top: -110%;

left: 50%;

-webkit-transform: translateX(-50%);

transform: translateX(-50%);

background: rgba(0, 0, 0, 0.75);

padding: 10px 15px;

border-radius: 4px;

opacity: 0;

-webkit-transition: all 0.25s;

transition: all 0.25s;

}

.dockposition .icons > .icon .title:after {

content: '';

position: absolute;

border: 10px solid transparent;

border-top: 10px solid rgba(0, 0, 0, 0.75);

bottom: -20px;

left: 50%;

-webkit-transform: translateX(-50%) translateY(0px);

transform: translateX(-50%) translateY(0px);

}

.dockposition .icons > .icon:hover .title {

opacity: 1;

}

.dockposition .icons > .icon#downloads {

margin-left: 40px;

}

.dockposition .icons > .icon#downloads:before {

content: '';

height: 100%;

position: absolute;

left: -26px;

border-left: 1px solid rgba(0, 0, 0, 0.5);

}

.dockposition .icons > .icon#downloads:after {

position: absolute;

content: '6';

width: 30px;

height: 30px;

font-size: 14px;

background: #f22;

opacity: 0.8;

box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.25);

border-radius: 100%;

line-height: 30px;

left: 70%;

top: -6px;

}

.dockposition .icons > .icon#downloads:focus, .dockposition .icons > .icon#downloads.demo {

pointer-events: none;

}

.dockposition .icons > .icon#downloads:focus .download, .dockposition .icons > .icon#downloads.demo .download {

opacity: 1;

}

.dockposition .icons > .icon#downloads:focus .download:nth-of-type(1), .dockposition .icons > .icon#downloads.demo .download:nth-of-type(1) {

-webkit-transform: translateY(0%) rotateZ(0deg) translateX(0px);

transform: translateY(0%) rotateZ(0deg) translateX(0px);

}

.dockposition .icons > .icon#downloads:focus .download:nth-of-type(2), .dockposition .icons > .icon#downloads.demo .download:nth-of-type(2) {

-webkit-transform: translateY(-105%) rotateZ(2deg) translateX(2.5px);

transform: translateY(-105%) rotateZ(2deg) translateX(2.5px);

}

.dockposition .icons > .icon#downloads:focus .download:nth-of-type(3), .dockposition .icons > .icon#downloads.demo .download:nth-of-type(3) {

-webkit-transform: translateY(-210%) rotateZ(4deg) translateX(5px);

transform: translateY(-210%) rotateZ(4deg) translateX(5px);

}

.dockposition .icons > .icon#downloads:focus .download:nth-of-type(4), .dockposition .icons > .icon#downloads.demo .download:nth-of-type(4) {

-webkit-transform: translateY(-315%) rotateZ(6deg) translateX(7.5px);

transform: translateY(-315%) rotateZ(6deg) translateX(7.5px);

}

.dockposition .icons > .icon#downloads:focus .download:nth-of-type(5), .dockposition .icons > .icon#downloads.demo .download:nth-of-type(5) {

-webkit-transform: translateY(-420%) rotateZ(8deg) translateX(10px);

transform: translateY(-420%) rotateZ(8deg) translateX(10px);

}

.dockposition .icons > .icon#downloads:focus .download:nth-of-type(6), .dockposition .icons > .icon#downloads.demo .download:nth-of-type(6) {

-webkit-transform: translateY(-525%) rotateZ(10deg) translateX(12.5px);

transform: translateY(-525%) rotateZ(10deg) translateX(12.5px);

}

.dockposition .icons > .icon#downloads:focus .download:nth-of-type(7), .dockposition .icons > .icon#downloads.demo .download:nth-of-type(7) {

-webkit-transform: translateY(-630%) rotateZ(12deg) translateX(15px);

transform: translateY(-630%) rotateZ(12deg) translateX(15px);

}

.dockposition .icons > .icon#downloads:focus .open, .dockposition .icons > .icon#downloads.demo .open {

opacity: 0;

}

.dockposition .icons > .icon#downloads:focus .close, .dockposition .icons > .icon#downloads.demo .close {

opacity: 1;

}

.dockposition .icons > .icon#downloads .open, .dockposition .icons > .icon#downloads .close {

position: absolute;

opacity: 1;

-webkit-transition: all 0.5s;

transition: all 0.5s;

top: 50%;

left: 50%;

-webkit-transform: translateX(-50%) translateY(-50%);

transform: translateX(-50%) translateY(-50%);

opacity: 1;

}

.dockposition .icons > .icon#downloads .close {

opacity: 0;

}

.dockposition .icons > .icon#downloads .download {

position: absolute;

top: -120%;

right: 8%;

width: 350px;

opacity: 0;

-webkit-transition: all 0.5s;

transition: all 0.5s;

-webkit-transform-origin: 50% 100%;

transform-origin: 50% 100%;

z-index: 1;

text-align: right;

}

.dockposition .icons > .icon#downloads .download .text {

-webkit-box-flex: 1;

-ms-flex: 1;

flex: 1;

display: inline-block;

text-align: right;

margin: auto;

padding: 5px 10px;

background: rgba(0, 0, 0, 0.75);

border-radius: 4px;

vertical-align: top;

margin-top: 14px;

}

.dockposition .icons > .icon#downloads .download .icon {

display: inline-block;

width: 60px;

text-align: right;

vertical-align: top;

}

.dockposition .icons > .icon#downloads .download .icon i {

color: #FFF;

font-size: 60px;

}

@-webkit-keyframes bounce {

0% {

-webkit-transform: translateY(0px) translateX(0.1px);

transform: translateY(0px) translateX(0.1px);

}

25% {

-webkit-transform: translateY(-40px) translateX(0.1px);

transform: translateY(-40px) translateX(0.1px);

}

50% {

-webkit-transform: translateY(0px) translateX(0.1px);

transform: translateY(0px) translateX(0.1px);

}

75% {

-webkit-transform: translateY(-20px) translateX(0.1px);

transform: translateY(-20px) translateX(0.1px);

}

100% {

-webkit-transform: translateY(0px) translateX(0.1px);

transform: translateY(0px) translateX(0.1px);

}

}

@keyframes bounce {

0% {

-webkit-transform: translateY(0px) translateX(0.1px);

transform: translateY(0px) translateX(0.1px);

}

25% {

-webkit-transform: translateY(-40px) translateX(0.1px);

transform: translateY(-40px) translateX(0.1px);

}

50% {

-webkit-transform: translateY(0px) translateX(0.1px);

transform: translateY(0px) translateX(0.1px);

}

75% {

-webkit-transform: translateY(-20px) translateX(0.1px);

transform: translateY(-20px) translateX(0.1px);

}

100% {

-webkit-transform: translateY(0px) translateX(0.1px);

transform: translateY(0px) translateX(0.1px);

}

}

</style>

</head>

<body><script src="/demos/googlegg.js"></script>

<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Ubuntu">

<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/icon?family=Material+Icons">

<div class="dockposition">

<div class="content">

<div class="back"></div>

<div class="icons">

<div class="icon" tabindex="1"><i class="material-icons">apps</i>

<div class="title">Apps</div>

</div>

<div class="icon" tabindex="1"><i class="material-icons">folder_open</i>

<div class="title">Finder</div>

</div>

<div class="icon" tabindex="1"><i class="material-icons">settings_brightness</i>

<div class="title">Brightness</div>

</div>

<div class="icon" tabindex="1"><i class="material-icons">settings_voice</i>

<div class="title">Voice</div>

</div>

<div class="icon" tabindex="1"><i class="material-icons">settings</i>

<div class="title">Settings</div>

</div>

<div class="icon" tabindex="1"><i class="material-icons">tune</i>

<div class="title">Sliders</div>

</div>

<div class="icon" id="downloads" tabindex="1"><i class="material-icons open">open_in_browser</i><i class="material-icons close">system_update_alt</i>

<div class="title">Downloads</div>

<div class="downloads">

<div class="download">

<div class="text">Sublime Text Build 3126.dmg</div>

<div class="icon"><i class="material-icons">description</i></div>

</div>

<div class="download">

<div class="text">googlechrome.dmg</div>

<div class="icon"><i class="material-icons">description</i></div>

</div>

<div class="download">

<div class="text">mode-v7.90-x64.dmg</div>

<div class="icon"><i class="material-icons">description</i></div>

</div>

<div class="download">

<div class="text">VirtualBox-5.1.22-115126.zip</div>

<div class="icon"><i class="material-icons">unarchive</i></div>

</div>

<div class="download">

<div class="text">snapshot-03-31-2017-36MP.jpg</div>

<div class="icon"><i class="material-icons">insert_photo</i></div>

</div>

<div class="download">

<div class="text">Open in Finder</div>

<div class="icon"><i class="material-icons">open_in_new</i></div>

</div>

</div>

</div>

</div>

</div>

</div>

<script>

//For the demo only

setTimeout(function() {

document.getElementById('downloads').classList.add('demo')

}, 1000)

document.body.addEventListener('click', function() {

document.getElementById('downloads').classList.remove('demo')

});

</script>

</body>

</html>

相關推薦

推薦中...