jQuery UI Touch Punch draggable()

时间:2013-03-11 14:26:57

标签: jquery touch jquery-ui-touch-punch

在我的应用程序中,我使用drag& drop,我想在移动设备上实现。我正在考虑使用这样的JQuery Ui触控器:

  var thumb = document.createElement("img");
  $(thumb).draggable({containment: "html"});

问题是我的图像仅在其父图像的范围内拖动(请参阅附图)而不是整个页面。我试过改变收容选项,但问题似乎在其他地方。 enter image description here

CSS:

html, body { 
   height: 100%;
   background: black;
   margin:0; padding:0;
   overflow:hidden;
}
//one parent
.dhThumbOuter {
    float: left;
    width: 64px;
    height: 64px;
    -webkit-box-shadow: 0px 0px 5px #4d4d4d;
    -moz-box-shadow: 0px 0px 5px #4d4d4d;
    box-shadow: 0px 0px 5px #4d4d4d;
    border:solid gray 1px;
    overflow: hidden;
    padding: 3px;
    margin-left: 3px;
    font-size: smaller;
    position:relative;
    border : solid gray 2px;

}
//other parrent
.dhThumbImage {
    background: lightgray;
    padding: 0;
    width: 64px;
    height: 64px;
    overflow: hidden;
    position:absolute;
}​

使用Javascript:

   var thout = createElement("div", "dhThumbOuter dhRounded");
            container.appendChild(thout);
            var thinner = createElement("div", "dhThumbImage dhRounded");
            thout.appendChild(thinner);
            thinner.appendChild(thumb); //my image

2 个答案:

答案 0 :(得分:1)

使用helper: clone上的draggable()属性,以便在拖动时图片“突破”其容器。

请在此处查看官方jQuery UI可拖动文档:http://api.jqueryui.com/draggable/#option-helper

答案 1 :(得分:0)

您还可以添加自定义助手

$('#draggable').draggable({
  zIndex: 20,
  drag: function(event){...},
  helper: function(){
    $("#outerElement").append($("#draggable").clone().attr('id', 'itWorks'))
    return $("#itWorks");
  },
})

其中outerElement是包含draggable和drop元素的元素