@-webkit-keyframes ruler-point { 0% { height: 0 } to { height: 11.375px } } @keyframes ruler-point { 0% { height: 0 } to { height: 11.375px } } @-webkit-keyframes ruler-label { 0% { max-width: 0 } to { max-width: 131.25px } } @keyframes ruler-label { 0% { max-width: 0 } to { max-width: 131.25px } } @-webkit-keyframes door-label { 0% { opacity: 0; margin-top: 8.75px } to { opacity: 1; margin-top: 0 } } @keyframes door-label { 0% { opacity: 0; margin-top: 8.75px } to { opacity: 1; margin-top: 0 } } @-webkit-keyframes room-label { 0% { opacity: 0; margin-top: 8.75px } to { opacity: 1; margin-top: 0 } } @keyframes room-label { 0% { opacity: 0; margin-top: 8.75px } to { opacity: 1; margin-top: 0 } } @-webkit-keyframes ruler-line { 0% { width: 0 } to { width: 100% } } @keyframes ruler-line { 0% { width: 0 } to { width: 100% } } .rulers { position: absolute; pointer-events: none; top: 0; left: 0; bottom: 0; right: 0; } .rulers .ruler-line { position: absolute; -webkit-transform-origin: left 0.875px; transform-origin: left 0.875px; width: 0; height: 1.75px; } .rulers .ruler-line em { background: -webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,.5)),to(hsla(0,0%,100%,.3))); background: linear-gradient(90deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,.3)); display: block; height: 100%; -webkit-animation: ruler-line .5s ease 1s; animation: ruler-line .5s ease 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-box-shadow: 0 0 3.5px rgba(0,0,0,.6); box-shadow: 0 0 3.5px rgba(0,0,0,.6); } .rulers .ruler-label { position: absolute; /* width: 0; */ height: 0; top: 0.875px; left: 38%; } .rulers .ruler-label .ruler-label-point { position: absolute; width: 28px; height:11.375px; right: 0; bottom: 0; background-position: bottom; background-repeat: no-repeat; background-image: url(../images/ruler-point.svg); background-size: 28px 11.375px; -webkit-transform: translateZ(0); transform: translateZ(0); transform-origin: right center; -webkit-animation: ruler-point .3s ease 1.3s; animation: ruler-point .3s ease 1.3s; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .rulers .ruler-label .ruler-label-name { color:white; position: absolute; height: 15.75px; font-size: 12px; line-height: 15.75px; right: 28px; bottom: 0.875px; white-space: nowrap; /* max-width: 0; */ overflow: hidden; -webkit-animation: ruler-label 1s ease 1.6s; animation: ruler-label 1s ease 1.6s; -webkit-animation-fill-mode: both; animation-fill-mode: both; text-shadow: 0 0 3.5px rgba(0,0,0,.6); } .rulers .ruler-label.reverse .ruler-label-point{ -webkit-transform: rotateY(180deg); transform: rotateY(180deg); } .rulers .ruler-label.reverse .ruler-label-name { /* -webkit-transform: rotateY(-180deg); */ /* transform: rotateY(-180deg); */ right: auto; left: 28px; } .rulers .measure .ruler-label .ruler-label-name{ color: #f0ff00; } .rulers .ruler-intersection { position: absolute; width: 0; height: 0 } .rulers .ruler-intersection .ruler-intersection-point { position: absolute; left: 0; bottom: 0; width: 18.375px; height: 7px; background-image: url(../images/intersection-label.svg); background-repeat: no-repeat; background-size: 18.375px 7px; background-position: 50% } .rulers .ruler-intersection .ruler-intersection-text { position: absolute; left: 18.375px; bottom: 0; font-size: 12px; line-height: 12px; white-space: nowrap; color: #12fffb; text-shadow: 0 0 3.5px rgba(0,0,0,.3); -webkit-transform-origin: left center; transform-origin: left center; -webkit-transform: scale(.85); transform: scale(.85) } .measure .ruler-label .ruler-label-name{ font-size:14px; line-height:14px; } .measure .ruler-label{ position:absolute; } .measure .ruler-label .ruler-label-point{ background-image: url(../images/ruler-point-yellow.svg); animation-delay: .3s; } .measure .ruler-label .ruler-label-name{ animation-delay: .6s; } /* edit 界面 ruler立刻出现 */ .edit .ruler-line em { animation-delay: 0s; } .edit .ruler-label .ruler-label-point, .wallLine .ruler-label .ruler-label-point{ animation-delay: 0s; } .edit .ruler-label .ruler-label-name, .wallLine .ruler-label .ruler-label-name{ animation-delay: .3s; } /* dollLabels: */ .dollLabels, .planLabels{ overflow: hidden; position: absolute; pointer-events: none; top: 0; left: 0; bottom: 0; right: 0 } .dollLabels .roomLabel { position: absolute; width: 0; height: 0; /* display: none; */ -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-animation: room-label .3s ease .1s; animation: room-label .3s ease .1s; -webkit-animation-fill-mode: both; animation-fill-mode: both } /* .dollLabels .roomLabel.visible { display: block } */ .dollLabels .roomLabel:after { content: ""; display: block; position: absolute; width: 1px; height: 66px; background-image: url(../images/labelline.png); background-size: contain; bottom: 0; left: 50%; -webkit-transform: translate(-50%); transform: translate(-50%); } .dollLabels .roomLabel a { display: block; position: absolute; /* width: 38.5px; */ height: 33px; line-height: 32px; top: -99px; /* left: 50%; */ -webkit-transform: translate(-50%); transform: translate(-50%); text-align: center; white-space: nowrap; font-size: 14px; font-style: normal; pointer-events: auto; /* background-size: 38.5px 18.375px; */ border: 1px solid #bbb; /* -webkit-box-shadow: 0 1.875px 10.5px rgba(45,45,45,.5); */ /* box-shadow: 0 1.875px 10.5px rgba(45,45,45,.5); */ border-radius: 18.375px; padding: 0px 14px; background: rgba(30, 30, 30, 0.38); } .dollLabels .roomLabel a span { white-space: nowrap; color:white; /* position: absolute; */ user-select: none; /* left: 50%; */ /* top: 50%; */ -webkit-transform: translate(-50%,-50%); /* transform: translate(-50%,-50%); */ } .dollLabels .roomLabel.with-small-font a span { -webkit-transform: translate(-50%,-50%) scale(.83); transform: translate(-50%,-50%) scale(.83) } .dollLabels .roomLabel.with-entrance:after { display: none } .dollLabels .roomLabel.with-entrance a { top: 50%; width: 38.5px; height: 15.75px; background-size: 38.5px 15.75px; background-image: url(../images/roomlabel-entrance.svg); -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%) } .dollLabels .roomLabel.with-entrance a span { margin-left: -0.875px; margin-top: -0.875px } .planLabels .roomLabel{ position: absolute; -webkit-animation: room-label .3s ease .1s; animation: room-label .3s ease .1s; -webkit-animation-fill-mode: both; animation-fill-mode: both } .planLabels .roomLabel a { display: block; position: absolute; /* width: 38.5px; */ line-height: 24px; /* top: -99px; */ /* left: 50%; */ -webkit-transform: translate(-50%); transform: translate(-50%,-50%); text-align: center; white-space: nowrap; font-size: 14px; font-style: normal; /* pointer-events: auto */ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); color:white; } .doors { position: absolute; pointer-events: none; top: 0; left: 0; bottom: 0; right: 0 } .doors[data-camera-toward=forward] .door.show-arrow.right a:before { margin-right: 3.5px; -webkit-transform: rotate(180deg); transform: rotate(180deg) } .doors[data-camera-toward=forward] .door.show-arrow.left a:after,.doors[data-camera-toward=forward] .door.show-arrow.right a:before { content: ""; position: relative; display: inline-block; width: 10.5px; height: 10.5px; background: url(../images/room-arrow-label.svg) no-repeat 50%; background-size: 100% 100%; vertical-align: middle } .doors[data-camera-toward=forward] .door.show-arrow.left a:after { margin-left: 3.5px } .doors[data-camera-toward=forward] .door.show-arrow.back a:after,.doors[data-camera-toward=right] .door.show-arrow.left a:after { content: ""; display: inline-block; vertical-align: middle; width: 10.5px; height: 10.5px; background: url(../images/room-arrow-label.svg) no-repeat 50%; background-size: 100% 100%; margin-left: 3.5px; -webkit-transform: rotate(-90deg); transform: rotate(-90deg) } .doors[data-camera-toward=right] .door.show-arrow.back a:before { margin-right: 3.5px; -webkit-transform: rotate(180deg); transform: rotate(180deg) } .doors[data-camera-toward=right] .door.show-arrow.back a:before,.doors[data-camera-toward=right] .door.show-arrow.forward a:after { content: ""; position: relative; display: inline-block; width: 10.5px; height: 10.5px; background: url(../images/room-arrow-label.svg) no-repeat 50%; background-size: 100% 100%; vertical-align: middle } .doors[data-camera-toward=right] .door.show-arrow.forward a:after { margin-left: 3.5px } .doors[data-camera-toward=left] .door.show-arrow.right a:after { -webkit-transform: rotate(-90deg); transform: rotate(-90deg) } .doors[data-camera-toward=left] .door.show-arrow.back a:after,.doors[data-camera-toward=left] .door.show-arrow.right a:after { content: ""; display: inline-block; vertical-align: middle; width: 10.5px; height: 10.5px; background: url(../images/room-arrow-label.svg) no-repeat 50%; background-size: 100% 100%; margin-left: 3.5px } .doors[data-camera-toward=left] .door.show-arrow.back a:after { position: relative } .doors[data-camera-toward=left] .door.show-arrow.forward a:before { position: relative; margin-right: 3.5px; -webkit-transform: rotate(180deg); transform: rotate(180deg) } .doors[data-camera-toward=back] .door.show-arrow.forward a:after,.doors[data-camera-toward=left] .door.show-arrow.forward a:before { content: ""; display: inline-block; width: 10.5px; height: 10.5px; background: url(../images/room-arrow-label.svg) no-repeat 50%; background-size: 100% 100%; vertical-align: middle } .doors[data-camera-toward=back] .door.show-arrow.forward a:after { margin-left: 3.5px; -webkit-transform: rotate(-90deg); transform: rotate(-90deg) } .doors[data-camera-toward=back] .door.show-arrow.right a:after { margin-left: 3.5px } .doors[data-camera-toward=back] .door.show-arrow.left a:before,.doors[data-camera-toward=back] .door.show-arrow.right a:after { content: ""; position: relative; display: inline-block; width: 10.5px; height: 10.5px; background: url(../images/room-arrow-label.svg) no-repeat 50%; background-size: 100% 100%; vertical-align: middle } .doors[data-camera-toward=back] .door.show-arrow.left a:before { margin-right: 3.5px; -webkit-transform: rotate(180deg); transform: rotate(180deg) } .doors .door { position: absolute; width: 0; height: 0; /* display: none; */ -webkit-animation: viewport-door-label .3s ease 1s; animation: viewport-door-label .3s ease 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-transform: translateZ(0); transform: translateZ(0) } /* .doors .door.visible { display: block } */ .doors .door a { display: block; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); border-radius: 1.75px; background: rgba(0,0,0,.3); line-height: 10.5px; padding: 3.5px 4.375px; white-space: nowrap; font-size: 10.5px; font-style: normal; pointer-events: auto; -webkit-transition: background .3s ease,color .3s ease,-webkit-transform 1s ease; transition: background .3s ease,color .3s ease,-webkit-transform 1s ease; transition: transform 1s ease,background .3s ease,color .3s ease; transition: transform 1s ease,background .3s ease,color .3s ease,-webkit-transform 1s ease } .doors .door a:after { -webkit-transition: opacity .3s ease; transition: opacity .3s ease } .doors .door a:active { background: rgba(0,0,0,.5); color: hsla(0,0%,100%,.5) } .doors .door a:active:after { opacity: .5 }