房间数量选择滑块动画效果
代码语言:html
所属分类:选择器
代码描述:房间数量选择滑块动画效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> [data-rooms="6"] { --wings-width: 425px; --front-width: 150px; } [data-rooms="6"] .house-wings { width: 425px; left: calc(50% - 212.5px); } [data-rooms="6"] .house-front { width: 150px; left: calc(50% - 75px); } [data-rooms="5"] { --wings-width: 355px; --front-width: 150px; } [data-rooms="5"] .house-wings { width: 355px; left: calc(50% - 177.5px); } [data-rooms="5"] .house-front { width: 150px; left: calc(50% - 75px); } [data-rooms="4"] { --wings-width: 300px; --front-width: 125px; } [data-rooms="4"] .house-wings { width: 300px; left: calc(50% - 150px); } [data-rooms="4"] .house-front { width: 125px; left: calc(50% - 62.5px); } [data-rooms="3"] { --wings-width: 240px; --front-width: 150px; } [data-rooms="3"] .house-wings { width: 240px; left: calc(50% - 120px); } [data-rooms="3"] .house-front { width: 150px; left: calc(50% - 75px); } .house { height: 225px; width: 520px; } .house-label { text-transform: uppercase; font-weight: bold; padding-left: calc(20px + 1ch); font-size: 25px; color: #224889; margin: 30px 0 5px; font-family: Arial Rounded MT Bold, Helvetica Neue, Helvetica, sans serif; } .house-label:before, .house-label:after { position: absolute; text-align: right; left: 0; top: 0; padding: 0 .5ch; will-change: transform; } .house-label:before { content: attr(data-prev-rooms); } .house-label:after { content: attr(data-rooms); } .house-label[data-rooms="6"][data-rooms-delta^="-"]:before { -webkit-animation: prev-label-up-6 500ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: prev-label-up-6 500ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms="6"][data-rooms-delta^="-"]:after { -webkit-animation: label-up-6 1000ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: label-up-6 1000ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms="6"]:not([data-rooms-delta^="-"]):before { -webkit-animation: prev-label-down-6 500ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: prev-label-down-6 500ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms="6"]:not([data-rooms-delta^="-"]):after { -webkit-animation: label-down-6 1000ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: label-down-6 1000ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; } @-webkit-keyframes prev-label-up-6 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(-100%) scale(1.5); transform: translateY(-100%) scale(1.5); opacity: 0; } } @keyframes prev-label-up-6 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(-100%) scale(1.5); transform: translateY(-100%) scale(1.5); opacity: 0; } } @-webkit-keyframes prev-label-down-6 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(100%) scale(1.5); transform: translateY(100%) scale(1.5); opacity: 0; } } @keyframes prev-label-down-6 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(100%) scale(1.5); transform: translateY(100%) scale(1.5); opacity: 0; } } @-webkit-keyframes label-up-6 { from { -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } @keyframes label-up-6 { from { -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } @-webkit-keyframes label-down-6 { from { -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } @keyframes label-down-6 { from { -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } .house-label[data-rooms="5"][data-rooms-delta^="-"]:before { -webkit-animation: prev-label-up-5 500ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: prev-label-up-5 500ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms="5"][data-rooms-delta^="-"]:after { -webkit-animation: label-up-5 1000ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: label-up-5 1000ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms="5"]:not([data-rooms-delta^="-"]):before { -webkit-animation: prev-label-down-5 500ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: prev-label-down-5 500ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms="5"]:not([data-rooms-delta^="-"]):after { -webkit-animation: label-down-5 1000ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: label-down-5 1000ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; } @-webkit-keyframes prev-label-up-5 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(-100%) scale(1.5); transform: translateY(-100%) scale(1.5); opacity: 0; } } @keyframes prev-label-up-5 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(-100%) scale(1.5); transform: translateY(-100%) scale(1.5); opacity: 0; } } @-webkit-keyframes prev-label-down-5 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(100%) scale(1.5); transform: translateY(100%) scale(1.5); opacity: 0; } } @keyframes prev-label-down-5 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(100%) scale(1.5); transform: translateY(100%) scale(1.5); opacity: 0; } } @-webkit-keyframes label-up-5 { from { -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } @keyframes label-up-5 { from { -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } @-webkit-keyframes label-down-5 { from { -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } @keyframes label-down-5 { from { -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } .house-label[data-rooms="4"][data-rooms-delta^="-"]:before { -webkit-animation: prev-label-up-4 500ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: prev-label-up-4 500ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms="4"][data-rooms-delta^="-"]:after { -webkit-animation: label-up-4 1000ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: label-up-4 1000ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms="4"]:not([data-rooms-delta^="-"]):before { -webkit-animation: prev-label-down-4 500ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: prev-label-down-4 500ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms="4"]:not([data-rooms-delta^="-"]):after { -webkit-animation: label-down-4 1000ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: label-down-4 1000ms 70ms cubic-bezier(0.1, 0, 0.3, 1) both; } @-webkit-keyframes prev-label-up-4 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(-100%) scale(1.5); transform: translateY(-100%) scale(1.5); opacity: 0; } } @keyframes prev-label-up-4 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(-100%) scale(1.5); transform: translateY(-100%) scale(1.5); opacity: 0; } } @-webkit-keyframes prev-label-down-4 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(100%) scale(1.5); transform: translateY(100%) scale(1.5); opacity: 0; } } @keyframes prev-label-down-4 { from { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } to { -webkit-transform: translateY(100%) scale(1.5); transform: translateY(100%) scale(1.5); opacity: 0; } } @-webkit-keyframes label-up-4 { from { -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } @keyframes label-up-4 { from { -webkit-transform: translateY(100%); transform: translateY(100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } @-webkit-keyframes label-down-4 { from { -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } @keyframes label-down-4 { from { -webkit-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } 50% { -webkit-transform: translateY(0) scale(1.5); transform: translateY(0) scale(1.5); opacity: 1; } to { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; } } .house-label[data-rooms="3"][data-rooms-delta^="-"]:before { -webkit-animation: prev-label-up-3 500ms cubic-bezier(0.1, 0, 0.3, 1) both; animation: prev-label-up-3 500ms cubic-bezier(0.1, 0, 0.3, 1) both; } .house-label[data-rooms.........完整代码请登录后点击上方下载按钮下载查看
网友评论0