浮窗 - 副本.html 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <button>克隆所有,在body元素中插入它们</button>
  9. <div id="moveitem" class="myMoveItem" style="top:10px;left:10px;">
  10. <div class="moveItem_header">
  11. <p class="moveItem_title" onselectstart="return false">标题1</p>
  12. <div class="moveItem_oper">
  13. <button type="button" class="moveItem_fullScreen"><></button>
  14. <button type="button" class="moveItem_normalScreen">><</button>
  15. <button type="button" class="moveItem_close">X</button>
  16. </div>
  17. </div>
  18. <div class="moveItem_body" style="background-color: #FFF;height: calc(100% - 57px);">
  19. <p>测试1</p>
  20. </div>
  21. <span class="moveItem_resize"></span>
  22. </div>
  23. <div class="myMoveItem" style="top:150px;left:180px">
  24. <div class="moveItem_header">
  25. <p class="moveItem_title" onselectstart="return false">标题2</p>
  26. <div class="moveItem_oper">
  27. <button type="button" class="moveItem_fullScreen"><></button>
  28. <button type="button" class="moveItem_normalScreen">><</button>
  29. <button type="button" class="moveItem_close">X</button>
  30. </div>
  31. </div>
  32. <div class="moveItem_body">
  33. <p>测试2</p>
  34. </div>
  35. <div class="moveItem_footer">
  36. <button type="button" class="moveItem_do">确定</button>
  37. <button type="button" class="moveItem_cancel">取消</button>
  38. </div>
  39. <span class="moveItem_resize"></span>
  40. </div>
  41. </body>
  42. </html>
  43. <style type="text/css">
  44. body {
  45. height: 100%;
  46. width: 100%;
  47. overflow: hidden;
  48. }
  49. .moveItem_title {
  50. margin: 0;
  51. display: inline-block;
  52. width: calc(100% - 95px);
  53. padding: 10px;
  54. cursor: move;
  55. }
  56. .myMoveItem {
  57. width: 560px;
  58. height: 380px;
  59. background-color: white;
  60. box-shadow: 1px 1px 6px rgba(0,0,0,.2);
  61. position: absolute;
  62. z-index: 20;
  63. border-radius: 2px;
  64. }
  65. .moveItem_oper {
  66. position: absolute;
  67. right: 10px;
  68. display: inline;
  69. padding: 10px 0;
  70. }
  71. .moveItem_header {
  72. display: flex;
  73. background-color: #F8F8F8;
  74. }
  75. .moveItem_body {
  76. /* height: calc(100% - 179px); */
  77. height: calc(100% - 97px);
  78. padding: 8px;
  79. background-color: #eee;
  80. overflow: hidden;
  81. }
  82. .moveItem_footer {
  83. display: flex;
  84. padding: 8px;
  85. }
  86. .moveItem_do {
  87. color: #FFF;
  88. background-color: #1E9FFF;
  89. padding: 4px 15px;
  90. border: 0;
  91. cursor: pointer;
  92. position: absolute;
  93. right: 73px;
  94. }
  95. .moveItem_do:hover {
  96. color: #6698FF;
  97. background-color: transparent;
  98. border: 1px solid #6698FF;
  99. padding: 3px 14px;
  100. }
  101. .moveItem_cancel {
  102. color: #FFF;
  103. background-color: rgba(0, 0, 0, .2);
  104. padding: 4px 15px;
  105. border: 0;
  106. cursor: pointer;
  107. position: absolute;
  108. right: 10px;
  109. }
  110. .moveItem_cancel:hover {
  111. color: rgba(0, 0, 0, .3);
  112. background-color: transparent;
  113. border: 1px solid rgba(0, 0, 0, .3);
  114. padding: 3px 14px;
  115. }
  116. .moveItem_resize {
  117. cursor: se-resize;
  118. position: absolute;
  119. right: -2px;
  120. bottom: -2px;
  121. height: 10px;
  122. width: 10px;
  123. }
  124. .moveItem_fullScreen, .moveItem_normalScreen, .moveItem_close {
  125. background-color: transparent;
  126. border: 0;
  127. cursor: pointer;
  128. }
  129. .moveItem_close:hover {
  130. color: red;
  131. }
  132. .moveItem_fullScreen:hover, .moveItem_normalScreen:hover {
  133. color: #3280fc;
  134. }
  135. .moveItem_fullScreen {
  136. right: 40px;
  137. }
  138. .moveItem_normalScreen {
  139. display: none;
  140. }
  141. </style>
  142. <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
  143. <script type="text/javascript">
  144. $(function(){
  145. //移动窗口,并置顶窗口 [显示红框]
  146. $(".myMoveItem .moveItem_title").bind("mousedown", function(e1){
  147. var _this = $(this).parents(".myMoveItem");
  148. var oldpageX = e1.pageX;
  149. var oldpageY = e1.pageY;
  150. var oldLeft = parseInt(_this.css("left"));
  151. var oldTop = parseInt(_this.css("top"));
  152. var _clone = _this.clone().empty().css({
  153. "border": "1px solid red",
  154. "background": "transparent",
  155. }).appendTo(_this.parent());
  156. setMoveItemToppest(_clone); //置顶
  157. $(document).bind("mousemove.myMoveItem", function(e2){
  158. _clone.css("left", e2.pageX - oldpageX + oldLeft + "px");
  159. _clone.css("top", e2.pageY - oldpageY + oldTop + "px");
  160. });
  161. $(document).bind("mouseup.myMoveItem", function(e2){
  162. setMoveItemToppest(_this); //置顶
  163. _this.css("left", parseInt(_clone.css("left")));
  164. _this.css("top", parseInt(_clone.css("top")));
  165. _clone.remove();
  166. $(document).unbind("mousemove.myMoveItem");
  167. $(document).unbind("mouseup.myMoveItem");
  168. });
  169. });
  170. //移动窗口,并置顶窗口 [不显示红框,直接移动] [使用方法:取消这个注释,然后注释上面那个]
  171. // $(".myMoveItem .moveItem_title").bind("mousedown", function(e1){
  172. // var _this = $(this).parents(".myMoveItem");
  173. // var oldpageX = e1.pageX;
  174. // var oldpageY = e1.pageY;
  175. // var oldLeft = parseInt(_this.css("left"));
  176. // var oldTop = parseInt(_this.css("top"));
  177. // setMoveItemToppest(_this); //置顶
  178. // $(document).bind("mousemove.myMoveItem", function(e2){
  179. // _this.css("left", e2.pageX - oldpageX + oldLeft + "px");
  180. // _this.css("top", e2.pageY - oldpageY + oldTop + "px");
  181. // });
  182. // $(document).bind("mouseup.myMoveItem", function(e2){
  183. // $(document).unbind("mousemove.myMoveItem");
  184. // $(document).unbind("mouseup.myMoveItem");
  185. // });
  186. // });
  187. //点击时置顶
  188. $(".myMoveItem").bind("click", function(){
  189. setMoveItemToppest($(this));
  190. });
  191. //置顶窗口方法
  192. function setMoveItemToppest(_this){
  193. function sortNumber(a, b) {return a-b;}
  194. var zIndexArr = [];
  195. $(document).find(".myMoveItem").each(function(){
  196. zIndexArr.push(parseInt($(this).css("z-index")));
  197. });
  198. zIndexArr.sort(sortNumber);
  199. _this.css("z-index", zIndexArr[zIndexArr.length-1] + 1);
  200. }
  201. //右下角改变窗口大小
  202. $(".myMoveItem .moveItem_resize").bind("mousedown", function(e1){
  203. var _this = $(this).parents(".myMoveItem");
  204. var oldpageX = e1.pageX;
  205. var oldpageY = e1.pageY;
  206. var oldWidth = parseInt(_this.css("width"));
  207. var oldHeight = parseInt(_this.css("height"));
  208. $(document).bind("mousemove.myMoveItem", function(e2){
  209. if((e2.pageX - oldpageX + oldWidth) > 150 && (e2.pageY - oldpageY + oldHeight) > 150){
  210. _this.css("width", e2.pageX - oldpageX + oldWidth + "px");
  211. _this.css("height", e2.pageY - oldpageY + oldHeight + "px");
  212. // _this.children(".moveItem_body").css("height", "calc(100% - 95px)");
  213. }
  214. });
  215. $(document).bind("mouseup.myMoveItem", function(e2){
  216. $(document).unbind("mousemove.myMoveItem");
  217. $(document).unbind("mouseup.myMoveItem");
  218. });
  219. });
  220. //关闭按钮
  221. $(".myMoveItem .moveItem_close").click(function(){
  222. $(this).parents(".moveItem_header").parent().hide();
  223. });
  224. //取消按钮
  225. $(".myMoveItem .moveItem_cancel").click(function(){
  226. $(this).parents(".moveItem_footer").parent().remove();
  227. });
  228. //全屏按钮
  229. $(".moveItem_fullScreen").click(function(e){
  230. $(this).hide();
  231. $(this).siblings(".moveItem_normalScreen").attr("css-data", $(this).parents(".moveItem_header").parent().attr("style"));
  232. $(this).parents(".moveItem_header").parent().css({
  233. "left":"0",
  234. "top":"0",
  235. "height":"100%",
  236. "width":"100%",
  237. });
  238. // $(this).parents(".myMoveItem").children(".moveItem_body").css("height", "calc(100% - 95px)");
  239. $(this).siblings(".moveItem_normalScreen").show();
  240. });
  241. //还原按钮
  242. $(".moveItem_normalScreen").click(function(){
  243. $(this).parents(".moveItem_header").parent().attr("style", $(this).attr("css-data"));
  244. $(this).hide();
  245. $(this).siblings(".moveItem_fullScreen").show();
  246. });
  247. });
  248. </script>