zui.imgcutter.css 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /*!
  2. * ZUI: 图片裁剪工具 - v1.8.1 - 2018-01-18
  3. * http://zui.sexy
  4. * GitHub: https://github.com/easysoft/zui.git
  5. * Copyright (c) 2018 cnezsoft.com; Licensed MIT
  6. */
  7. .img-cutter {
  8. padding: 10px;
  9. margin-bottom: 20px;
  10. background: #e5e5e5;
  11. border: 1px solid #ddd;
  12. }
  13. .img-cutter > .canvas {
  14. position: relative;
  15. min-width: 50px;
  16. max-width: 100%;
  17. margin: 0 auto;
  18. }
  19. .img-cutter > .canvas > .cover {
  20. position: absolute;
  21. top: 0;
  22. left: 0;
  23. z-index: 1;
  24. width: 100%;
  25. height: 100%;
  26. -webkit-transition: all .4s cubic-bezier(.175, .885, .32, 1);
  27. -o-transition: all .4s cubic-bezier(.175, .885, .32, 1);
  28. transition: all .4s cubic-bezier(.175, .885, .32, 1);
  29. }
  30. .img-cutter > .canvas > img {
  31. -webkit-transition: all .4s cubic-bezier(.175, .885, .32, 1);
  32. -o-transition: all .4s cubic-bezier(.175, .885, .32, 1);
  33. transition: all .4s cubic-bezier(.175, .885, .32, 1);
  34. }
  35. .img-cutter > .canvas > .controller {
  36. position: absolute;
  37. top: 5%;
  38. left: 5%;
  39. z-index: 5;
  40. width: 100px;
  41. height: 100px;
  42. cursor: move;
  43. background: none;
  44. border: 1px dashed #fff;
  45. border-color: rgba(255, 255, 255, .7);
  46. -webkit-transition: opacity .4s cubic-bezier(.175, .885, .32, 1);
  47. -o-transition: opacity .4s cubic-bezier(.175, .885, .32, 1);
  48. transition: opacity .4s cubic-bezier(.175, .885, .32, 1);
  49. }
  50. .img-cutter > .canvas > .controller > .control {
  51. position: absolute;
  52. width: 6px;
  53. height: 6px;
  54. background: #000;
  55. background: rgba(0, 0, 0, .6);
  56. border: 1px solid #fff;
  57. border-color: rgba(255, 255, 255, .6);
  58. }
  59. .img-cutter > .canvas > .controller > .control[data-direction='left'] {
  60. top: 50%;
  61. left: -4px;
  62. margin-top: -3px;
  63. cursor: w-resize;
  64. }
  65. .img-cutter > .canvas > .controller > .control[data-direction='top'] {
  66. top: -4px;
  67. left: 50%;
  68. margin-left: -3px;
  69. cursor: n-resize;
  70. }
  71. .img-cutter > .canvas > .controller > .control[data-direction='right'] {
  72. top: 50%;
  73. right: -4px;
  74. margin-top: -3px;
  75. cursor: e-resize;
  76. }
  77. .img-cutter > .canvas > .controller > .control[data-direction='bottom'] {
  78. bottom: -4px;
  79. left: 50%;
  80. margin-left: -3px;
  81. cursor: s-resize;
  82. }
  83. .img-cutter > .canvas > .controller > .control[data-direction='top-left'] {
  84. top: -4px;
  85. left: -4px;
  86. cursor: nw-resize;
  87. }
  88. .img-cutter > .canvas > .controller > .control[data-direction='top-right'] {
  89. top: -4px;
  90. right: -4px;
  91. cursor: ne-resize;
  92. }
  93. .img-cutter > .canvas > .controller > .control[data-direction='bottom-left'] {
  94. bottom: -4px;
  95. left: -4px;
  96. cursor: sw-resize;
  97. }
  98. .img-cutter > .canvas > .controller > .control[data-direction='bottom-right'] {
  99. right: -4px;
  100. bottom: -4px;
  101. cursor: se-resize;
  102. }
  103. .img-cutter > .canvas > .cliper {
  104. position: absolute;
  105. top: 0;
  106. left: 0;
  107. z-index: 2;
  108. width: 100%;
  109. height: 100%;
  110. clip: rect(0px, 50px, 50px, 0);
  111. }
  112. .img-cutter.hover > .canvas > img,
  113. .img-cutter.hover > .canvas > .controller > .cover {
  114. filter: alpha(opacity=0);
  115. opacity: 0;
  116. }
  117. .img-cutter.hover > .canvas > .controller {
  118. display: none;
  119. }