draggable stack
Всем привет.
Дополнение draggable к библиотеке jQuery, гарантирует, что если применить метод stack, то тогда обрабатываемый элемент, каждый раз при перетаскивании будет иметь наивысший z-index. Но что-то, как-то не так все на практике. Делал по справочнику. Смотрел примеры в гугле, сделал все как и там, а не работает... Посмотрите пожалуйста: index.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="lib/jquery/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="lib/jquery/jquery-ui-1.8.8.custom.min.js"></script> <link rel="stylesheet" type="text/css" href="style/main.css" /> <title>Drag and drop</title> </head> <body> <div id="el-1" class="drag" name="g"></div> <div id="el-2" class="drag"></div> <script> $(document).ready(function() { $("div#el-1").css("background-color", "silver"); $("div#el-2").css("background-color", "grey"); $('.drag').draggable({ opacity: 0.40, stack: { group: '.drag', min: 50 } }); }); </script> </body> </html> main.css .drag{ border : 1px solid black; width : 100; height : 100; z-index : 10; } PS. Файлы расположены правильно, и все подключено, если что... PSS. Иначе говоря, нужно чтобы при перетаскивании, одного дива над другим, z-index перетаскиваемого менялся на максимальный. |
сделай для начала, чтобы оно запускалось прямо на форуме
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.8/jquery-ui.js"></script> <link rel="stylesheet" type="text/css" href="style/main.css" /> <title>Drag and drop</title> <style type="text/css"> .drag{ border : 1px solid black; width : 100; height : 100; z-index : 10; } </style> </head> <body> <div id="el-1" class="drag" name="g"></div> <div id="el-2" class="drag"></div> <script> $(document).ready(function() { $("div#el-1").css("background-color", "silver"); $("div#el-2").css("background-color", "grey"); $('.drag').draggable({ opacity: 0.40, stack: { group: '.drag', min: 50 } }); }); </script> </body> </html> |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.8/jquery-ui.js"></script> <link rel="stylesheet" type="text/css" href="style/main.css" /> <title>Drag and drop</title> <style type="text/css"> .drag{ border : 1px solid black; width : 100; height : 100; z-index : 10; } </style> </head> <body> <div id="el-1" class="drag" name="g"></div> <div id="el-2" class="drag"></div> <script> z=0; $(document).ready(function() { $("div#el-1").css("background-color", "silver"); $("div#el-2").css("background-color", "grey"); $('.drag').draggable({ start:function(){this.style.zIndex=z++} }); }); </script> </body> </html> |
Цитата:
Matre, спасибо, конечно, но это "велосипеды", есть конкретный метод и его нужно/можно использовать. |
читайте справку по испвольванию этой опции
http://slyweb.ru/jquerydoc/draggable-options.php сначала нужно установить название группы а потом запускать drag-n-drop в stack надо писать не селектор,а название группы |
Цитата:
Код:
group[0].style is undefined var o = $(this).data("draggable").options; var group = $.makeArray($(o.stack)).sort(function(a,b) { return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); }); if (!group.length) { return; } var min = parseInt(group[0].style.zIndex) || 0; видно, что stack должно быть селектором Matre, ты б на версию глянул ;) p.s. читайте исходники ;) |
x-yuri, спасибо, вечером гляну, как линь запущу. :)
|
Теперь понятно в чем была ошибка, просто в документации этого не пишут, а если и пишут то как-то по "конячему".
$(document).ready(function() { $("div#el-1").css("background-color", "silver"); $("div#el-2").css("background-color", "grey"); $("div#el-3").css("background-color", "orange"); $('.drag').draggable({ opacity: "0.4", stack: ".drag" }); }); x-yuri, тот код что ты привел, я у себя не нашел. Да и "рыться" в сжатых исходниках как-то в лом. Просто попробовал сделать так же как и раньше просто без group. Единственное, что не нра, так это то, что индекс меняется не по касанию, а при перемещении. В этом сходство с методом Matre. Я то думал оно более продуманное. Ну что же, ладно, всем спасибо. Пока. |
Часовой пояс GMT +3, время: 08:58. |