rulerLabel.css 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598
  1. @-webkit-keyframes ruler-point {
  2. 0% {
  3. height: 0
  4. }
  5. to {
  6. height: 11.375px
  7. }
  8. }
  9. @keyframes ruler-point {
  10. 0% {
  11. height: 0
  12. }
  13. to {
  14. height: 11.375px
  15. }
  16. }
  17. @-webkit-keyframes ruler-label {
  18. 0% {
  19. max-width: 0
  20. }
  21. to {
  22. max-width: 131.25px
  23. }
  24. }
  25. @keyframes ruler-label {
  26. 0% {
  27. max-width: 0
  28. }
  29. to {
  30. max-width: 131.25px
  31. }
  32. }
  33. @-webkit-keyframes door-label {
  34. 0% {
  35. opacity: 0;
  36. margin-top: 8.75px
  37. }
  38. to {
  39. opacity: 1;
  40. margin-top: 0
  41. }
  42. }
  43. @keyframes door-label {
  44. 0% {
  45. opacity: 0;
  46. margin-top: 8.75px
  47. }
  48. to {
  49. opacity: 1;
  50. margin-top: 0
  51. }
  52. }
  53. @-webkit-keyframes room-label {
  54. 0% {
  55. opacity: 0;
  56. margin-top: 8.75px
  57. }
  58. to {
  59. opacity: 1;
  60. margin-top: 0
  61. }
  62. }
  63. @keyframes room-label {
  64. 0% {
  65. opacity: 0;
  66. margin-top: 8.75px
  67. }
  68. to {
  69. opacity: 1;
  70. margin-top: 0
  71. }
  72. }
  73. @-webkit-keyframes ruler-line {
  74. 0% {
  75. width: 0
  76. }
  77. to {
  78. width: 100%
  79. }
  80. }
  81. @keyframes ruler-line {
  82. 0% {
  83. width: 0
  84. }
  85. to {
  86. width: 100%
  87. }
  88. }
  89. .rulers {
  90. position: absolute;
  91. pointer-events: none;
  92. top: 0;
  93. left: 0;
  94. bottom: 0;
  95. right: 0;
  96. }
  97. .rulers .ruler-line {
  98. position: absolute;
  99. -webkit-transform-origin: left 0.875px;
  100. transform-origin: left 0.875px;
  101. width: 0;
  102. height: 1.75px;
  103. }
  104. .rulers .ruler-line em {
  105. background: -webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,.5)),to(hsla(0,0%,100%,.3)));
  106. background: linear-gradient(90deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,.3));
  107. display: block;
  108. height: 100%;
  109. -webkit-animation: ruler-line .5s ease 1s;
  110. animation: ruler-line .5s ease 1s;
  111. -webkit-animation-fill-mode: both;
  112. animation-fill-mode: both;
  113. -webkit-box-shadow: 0 0 3.5px rgba(0,0,0,.6);
  114. box-shadow: 0 0 3.5px rgba(0,0,0,.6);
  115. }
  116. .rulers .ruler-label {
  117. position: absolute;
  118. /* width: 0; */
  119. height: 0;
  120. top: 0.875px;
  121. left: 38%;
  122. }
  123. .rulers .ruler-label .ruler-label-point {
  124. position: absolute;
  125. width: 28px;
  126. height:11.375px;
  127. right: 0;
  128. bottom: 0;
  129. background-position: bottom;
  130. background-repeat: no-repeat;
  131. background-image: url(../images/ruler-point.svg);
  132. background-size: 28px 11.375px;
  133. -webkit-transform: translateZ(0);
  134. transform: translateZ(0);
  135. transform-origin: right center;
  136. -webkit-animation: ruler-point .3s ease 1.3s;
  137. animation: ruler-point .3s ease 1.3s;
  138. -webkit-animation-fill-mode: both;
  139. animation-fill-mode: both;
  140. }
  141. .rulers .ruler-label .ruler-label-name {
  142. color:white;
  143. position: absolute;
  144. height: 15.75px;
  145. font-size: 12px;
  146. line-height: 15.75px;
  147. right: 28px;
  148. bottom: 0.875px;
  149. white-space: nowrap;
  150. /* max-width: 0; */
  151. overflow: hidden;
  152. -webkit-animation: ruler-label 1s ease 1.6s;
  153. animation: ruler-label 1s ease 1.6s;
  154. -webkit-animation-fill-mode: both;
  155. animation-fill-mode: both;
  156. text-shadow: 0 0 3.5px rgba(0,0,0,.6);
  157. }
  158. .rulers .ruler-label.reverse .ruler-label-point{
  159. -webkit-transform: rotateY(180deg);
  160. transform: rotateY(180deg);
  161. }
  162. .rulers .ruler-label.reverse .ruler-label-name {
  163. /* -webkit-transform: rotateY(-180deg); */
  164. /* transform: rotateY(-180deg); */
  165. right: auto;
  166. left: 28px;
  167. }
  168. .rulers .measure .ruler-label .ruler-label-name{
  169. color: #f0ff00;
  170. }
  171. .rulers .ruler-intersection {
  172. position: absolute;
  173. width: 0;
  174. height: 0
  175. }
  176. .rulers .ruler-intersection .ruler-intersection-point {
  177. position: absolute;
  178. left: 0;
  179. bottom: 0;
  180. width: 18.375px;
  181. height: 7px;
  182. background-image: url(../images/intersection-label.svg);
  183. background-repeat: no-repeat;
  184. background-size: 18.375px 7px;
  185. background-position: 50%
  186. }
  187. .rulers .ruler-intersection .ruler-intersection-text {
  188. position: absolute;
  189. left: 18.375px;
  190. bottom: 0;
  191. font-size: 12px;
  192. line-height: 12px;
  193. white-space: nowrap;
  194. color: #12fffb;
  195. text-shadow: 0 0 3.5px rgba(0,0,0,.3);
  196. -webkit-transform-origin: left center;
  197. transform-origin: left center;
  198. -webkit-transform: scale(.85);
  199. transform: scale(.85)
  200. }
  201. .measure .ruler-label .ruler-label-name{
  202. font-size:14px;
  203. line-height:14px;
  204. }
  205. .measure .ruler-label{
  206. position:absolute;
  207. }
  208. .measure .ruler-label .ruler-label-point{
  209. background-image: url(../images/ruler-point-yellow.svg);
  210. animation-delay: .3s;
  211. }
  212. .measure .ruler-label .ruler-label-name{
  213. animation-delay: .6s;
  214. }
  215. /* edit 界面 ruler立刻出现 */
  216. .edit .ruler-line em {
  217. animation-delay: 0s;
  218. }
  219. .edit .ruler-label .ruler-label-point, .wallLine .ruler-label .ruler-label-point{
  220. animation-delay: 0s;
  221. }
  222. .edit .ruler-label .ruler-label-name, .wallLine .ruler-label .ruler-label-name{
  223. animation-delay: .3s;
  224. }
  225. /* dollLabels: */
  226. .dollLabels, .planLabels{
  227. overflow: hidden;
  228. position: absolute;
  229. pointer-events: none;
  230. top: 0;
  231. left: 0;
  232. bottom: 0;
  233. right: 0
  234. }
  235. .dollLabels .roomLabel {
  236. position: absolute;
  237. width: 0;
  238. height: 0;
  239. /* display: none; */
  240. -webkit-transform: translateZ(0);
  241. transform: translateZ(0);
  242. -webkit-animation: room-label .3s ease .1s;
  243. animation: room-label .3s ease .1s;
  244. -webkit-animation-fill-mode: both;
  245. animation-fill-mode: both
  246. }
  247. /* .dollLabels .roomLabel.visible {
  248. display: block
  249. } */
  250. .dollLabels .roomLabel:after {
  251. content: "";
  252. display: block;
  253. position: absolute;
  254. width: 1px;
  255. height: 66px;
  256. background-image: url(../images/labelline.png);
  257. background-size: contain;
  258. bottom: 0;
  259. left: 50%;
  260. -webkit-transform: translate(-50%);
  261. transform: translate(-50%);
  262. }
  263. .dollLabels .roomLabel a {
  264. display: block;
  265. position: absolute;
  266. /* width: 38.5px; */
  267. height: 33px;
  268. line-height: 32px;
  269. top: -99px;
  270. /* left: 50%; */
  271. -webkit-transform: translate(-50%);
  272. transform: translate(-50%);
  273. text-align: center;
  274. white-space: nowrap;
  275. font-size: 14px;
  276. font-style: normal;
  277. pointer-events: auto;
  278. /* background-size: 38.5px 18.375px; */
  279. border: 1px solid #bbb;
  280. /* -webkit-box-shadow: 0 1.875px 10.5px rgba(45,45,45,.5); */
  281. /* box-shadow: 0 1.875px 10.5px rgba(45,45,45,.5); */
  282. border-radius: 18.375px;
  283. padding: 0px 14px;
  284. background: rgba(30, 30, 30, 0.38);
  285. }
  286. .dollLabels .roomLabel a span {
  287. white-space: nowrap;
  288. color:white;
  289. /* position: absolute; */
  290. user-select: none;
  291. /* left: 50%; */
  292. /* top: 50%; */
  293. -webkit-transform: translate(-50%,-50%);
  294. /* transform: translate(-50%,-50%); */
  295. }
  296. .dollLabels .roomLabel.with-small-font a span {
  297. -webkit-transform: translate(-50%,-50%) scale(.83);
  298. transform: translate(-50%,-50%) scale(.83)
  299. }
  300. .dollLabels .roomLabel.with-entrance:after {
  301. display: none
  302. }
  303. .dollLabels .roomLabel.with-entrance a {
  304. top: 50%;
  305. width: 38.5px;
  306. height: 15.75px;
  307. background-size: 38.5px 15.75px;
  308. background-image: url(../images/roomlabel-entrance.svg);
  309. -webkit-transform: translate(-50%,-50%);
  310. transform: translate(-50%,-50%)
  311. }
  312. .dollLabels .roomLabel.with-entrance a span {
  313. margin-left: -0.875px;
  314. margin-top: -0.875px
  315. }
  316. .planLabels .roomLabel{
  317. position: absolute;
  318. -webkit-animation: room-label .3s ease .1s;
  319. animation: room-label .3s ease .1s;
  320. -webkit-animation-fill-mode: both;
  321. animation-fill-mode: both
  322. }
  323. .planLabels .roomLabel a {
  324. display: block;
  325. position: absolute;
  326. /* width: 38.5px; */
  327. line-height: 24px;
  328. /* top: -99px; */
  329. /* left: 50%; */
  330. -webkit-transform: translate(-50%);
  331. transform: translate(-50%,-50%);
  332. text-align: center;
  333. white-space: nowrap;
  334. font-size: 14px;
  335. font-style: normal;
  336. /* pointer-events: auto */
  337. text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
  338. color:white;
  339. }
  340. .doors {
  341. position: absolute;
  342. pointer-events: none;
  343. top: 0;
  344. left: 0;
  345. bottom: 0;
  346. right: 0
  347. }
  348. .doors[data-camera-toward=forward] .door.show-arrow.right a:before {
  349. margin-right: 3.5px;
  350. -webkit-transform: rotate(180deg);
  351. transform: rotate(180deg)
  352. }
  353. .doors[data-camera-toward=forward] .door.show-arrow.left a:after,.doors[data-camera-toward=forward] .door.show-arrow.right a:before {
  354. content: "";
  355. position: relative;
  356. display: inline-block;
  357. width: 10.5px;
  358. height: 10.5px;
  359. background: url(../images/room-arrow-label.svg) no-repeat 50%;
  360. background-size: 100% 100%;
  361. vertical-align: middle
  362. }
  363. .doors[data-camera-toward=forward] .door.show-arrow.left a:after {
  364. margin-left: 3.5px
  365. }
  366. .doors[data-camera-toward=forward] .door.show-arrow.back a:after,.doors[data-camera-toward=right] .door.show-arrow.left a:after {
  367. content: "";
  368. display: inline-block;
  369. vertical-align: middle;
  370. width: 10.5px;
  371. height: 10.5px;
  372. background: url(../images/room-arrow-label.svg) no-repeat 50%;
  373. background-size: 100% 100%;
  374. margin-left: 3.5px;
  375. -webkit-transform: rotate(-90deg);
  376. transform: rotate(-90deg)
  377. }
  378. .doors[data-camera-toward=right] .door.show-arrow.back a:before {
  379. margin-right: 3.5px;
  380. -webkit-transform: rotate(180deg);
  381. transform: rotate(180deg)
  382. }
  383. .doors[data-camera-toward=right] .door.show-arrow.back a:before,.doors[data-camera-toward=right] .door.show-arrow.forward a:after {
  384. content: "";
  385. position: relative;
  386. display: inline-block;
  387. width: 10.5px;
  388. height: 10.5px;
  389. background: url(../images/room-arrow-label.svg) no-repeat 50%;
  390. background-size: 100% 100%;
  391. vertical-align: middle
  392. }
  393. .doors[data-camera-toward=right] .door.show-arrow.forward a:after {
  394. margin-left: 3.5px
  395. }
  396. .doors[data-camera-toward=left] .door.show-arrow.right a:after {
  397. -webkit-transform: rotate(-90deg);
  398. transform: rotate(-90deg)
  399. }
  400. .doors[data-camera-toward=left] .door.show-arrow.back a:after,.doors[data-camera-toward=left] .door.show-arrow.right a:after {
  401. content: "";
  402. display: inline-block;
  403. vertical-align: middle;
  404. width: 10.5px;
  405. height: 10.5px;
  406. background: url(../images/room-arrow-label.svg) no-repeat 50%;
  407. background-size: 100% 100%;
  408. margin-left: 3.5px
  409. }
  410. .doors[data-camera-toward=left] .door.show-arrow.back a:after {
  411. position: relative
  412. }
  413. .doors[data-camera-toward=left] .door.show-arrow.forward a:before {
  414. position: relative;
  415. margin-right: 3.5px;
  416. -webkit-transform: rotate(180deg);
  417. transform: rotate(180deg)
  418. }
  419. .doors[data-camera-toward=back] .door.show-arrow.forward a:after,.doors[data-camera-toward=left] .door.show-arrow.forward a:before {
  420. content: "";
  421. display: inline-block;
  422. width: 10.5px;
  423. height: 10.5px;
  424. background: url(../images/room-arrow-label.svg) no-repeat 50%;
  425. background-size: 100% 100%;
  426. vertical-align: middle
  427. }
  428. .doors[data-camera-toward=back] .door.show-arrow.forward a:after {
  429. margin-left: 3.5px;
  430. -webkit-transform: rotate(-90deg);
  431. transform: rotate(-90deg)
  432. }
  433. .doors[data-camera-toward=back] .door.show-arrow.right a:after {
  434. margin-left: 3.5px
  435. }
  436. .doors[data-camera-toward=back] .door.show-arrow.left a:before,.doors[data-camera-toward=back] .door.show-arrow.right a:after {
  437. content: "";
  438. position: relative;
  439. display: inline-block;
  440. width: 10.5px;
  441. height: 10.5px;
  442. background: url(../images/room-arrow-label.svg) no-repeat 50%;
  443. background-size: 100% 100%;
  444. vertical-align: middle
  445. }
  446. .doors[data-camera-toward=back] .door.show-arrow.left a:before {
  447. margin-right: 3.5px;
  448. -webkit-transform: rotate(180deg);
  449. transform: rotate(180deg)
  450. }
  451. .doors .door {
  452. position: absolute;
  453. width: 0;
  454. height: 0;
  455. /* display: none; */
  456. -webkit-animation: viewport-door-label .3s ease 1s;
  457. animation: viewport-door-label .3s ease 1s;
  458. -webkit-animation-fill-mode: both;
  459. animation-fill-mode: both;
  460. -webkit-transform: translateZ(0);
  461. transform: translateZ(0)
  462. }
  463. /* .doors .door.visible {
  464. display: block
  465. } */
  466. .doors .door a {
  467. display: block;
  468. position: absolute;
  469. top: 50%;
  470. left: 50%;
  471. -webkit-transform: translate(-50%,-50%);
  472. transform: translate(-50%,-50%);
  473. border-radius: 1.75px;
  474. background: rgba(0,0,0,.3);
  475. line-height: 10.5px;
  476. padding: 3.5px 4.375px;
  477. white-space: nowrap;
  478. font-size: 10.5px;
  479. font-style: normal;
  480. pointer-events: auto;
  481. -webkit-transition: background .3s ease,color .3s ease,-webkit-transform 1s ease;
  482. transition: background .3s ease,color .3s ease,-webkit-transform 1s ease;
  483. transition: transform 1s ease,background .3s ease,color .3s ease;
  484. transition: transform 1s ease,background .3s ease,color .3s ease,-webkit-transform 1s ease
  485. }
  486. .doors .door a:after {
  487. -webkit-transition: opacity .3s ease;
  488. transition: opacity .3s ease
  489. }
  490. .doors .door a:active {
  491. background: rgba(0,0,0,.5);
  492. color: hsla(0,0%,100%,.5)
  493. }
  494. .doors .door a:active:after {
  495. opacity: .5
  496. }