标签: draggable

如何在拖动时启动鼠标悬停事件

当我将一个元素拖到另一个div我有鼠标悬停事件的元素上时,该事件不会触发.但是,如果我将鼠标悬停在它上面而不拖动它就可以了.

有没有办法检测元素上的悬停事件,如果我在其上拖动另一个?

javascript jquery draggable hover

26
推荐指数
2
解决办法
2万
查看次数

如何制作MatDialog可拖动/角度材质

是否可以使Angular Material Dialog可拖动?我安装了angular2-draggable,当然可以使用所有其他元素的功能.

但是因为对话框是动态创建的,所以我不能在特殊元素上使用ngDraggable,或者可以使用模板变量.

dialog draggable material angular

25
推荐指数
2
解决办法
8220
查看次数

当我拖着时,dragend,dragenter和dragleave立即开火

我正在尝试制作一个可以通过拖放重新定位的元素列表.第一个元素Box 1在100%的时间内都能正常工作.有时第二个框可以工作,但其他框都没有按预期工作.一旦你开始拖动它们,它们似乎立即触发所有拖动事件.

如果重要的话,我正在使用最新的Chrome(第23版).

var $questionItems = $('.question-item');

$questionItems
  .on('dragstart', startDrag)
  .on('dragend', removeDropSpaces)
  .on('dragenter', toggleDropStyles)
  .on('dragleave', toggleDropStyles);


function startDrag(){
  console.log('dragging...');
  addDropSpaces();
}

function toggleDropStyles(){
  $(this).toggleClass('drag-over');
  console.log(this);
}


function addDropSpaces(){
  $questionItems.after('<div class="empty-drop-target"></div>');
  console.log('drop spaces added');
}

function removeDropSpaces(){
  $('.empty-drop-target').remove();
  console.log('drop spaces removed');
}
Run Code Online (Sandbox Code Playgroud)

这是HTML:

<div class="question-item" draggable="true">Box 1: Milk was a bad choice.</div>
<div class="question-item" draggable="true">Box 2: I'm Ron Burgundy?</div>
<div class="question-item" draggable="true">Box 3: You ate the entire wheel of cheese?</div>
<div class="question-item" draggable="true">Box 4: Scotch scotch scotch</div>
Run Code Online (Sandbox Code Playgroud)

这是我的代码的jsFiddle:http://jsfiddle.net/zGSpP/5/

javascript jquery html5 drag-and-drop draggable

23
推荐指数
4
解决办法
9531
查看次数

Firefox中的可拖动按钮

是否有可能使<button>(<input type="button">)在HTML中拖放Mozilla Firefox(同时仍然可以点击)?

以下代码片段适用于谷歌浏览器,但按钮和div按钮无法拖动Mozilla Firefox(除非Alt按下按键,不知道移动设备):

document.getElementById("myDiv").addEventListener(
  "dragstart",
  function (e) {
    e.dataTransfer.setData("Text", "myDiv")
  }
);

document.getElementById("myButton").addEventListener(
  "dragstart",
  function (e) {
    e.dataTransfer.setData("Text", "myButton")
  }
);

document.getElementById("myDivWithButton").addEventListener(
  "dragstart",
  function (e) {
    e.dataTransfer.setData("Text", "myDivWithButton")
  }
);
Run Code Online (Sandbox Code Playgroud)
<div id="myDiv" draggable="true">Div</div>
<button id="myButton" draggable="true">Button</button>
<div id="myDivWithButton" draggable="true"><button>Div with Button</button></div>
Run Code Online (Sandbox Code Playgroud)

我用draggable="true"dataTransfer.setData,是不是我错过了什么?有一些明智的解决方法吗?

(如果你想知道我需要什么:我有一些东西可以拖动到某个位置或设置在默认位置[当前视图的中心],我的想法是通过按钮[d&d→选择两者]位置,单击→默认位置].我知道我想我可以尝试格式化<div>,使其看起来像一个<button>或简单地将控件分成两个元素,但我宁愿不.)

html javascript drag-and-drop cross-browser draggable

22
推荐指数
3
解决办法
1967
查看次数

拖动时克隆节点

我希望能够创建我想要拖动的元素的副本.即时通讯使用标准的ui draggable和droppable.我知道帮助克隆选项.但这不会创建副本.拖动的项目将恢复到原始位置.

javascript jquery clone draggable

21
推荐指数
2
解决办法
2万
查看次数

jQuery:如何在代码中模拟拖放?

编辑:这是一个链接,向您展示我的示例代码:http://www.singingeels.com/jqtest/

我有一个非常简单的页面,它引用了jquery-1.3.2.js,ui.core.js(最新版本)和ui.draggable.js(也是最新版本).

我有一个div,我可以很容易地拖动(当然使用鼠标):

<div id="myDiv">hello</div>
Run Code Online (Sandbox Code Playgroud)

然后在JavaScript中:

$("#myDiv").draggable();
Run Code Online (Sandbox Code Playgroud)

这是完美的.但是,我需要能够仅使用代码来模拟"拖放".我主要使用它,但问题是触发的事件是占位符事件.

如果你打开"ui.core.js"并滚动到底部......你会看到:

// These are placeholder methods, to be overriden by extending plugin
_mouseStart: function(event) { },
_mouseDrag: function(event) { },
_mouseStop: function(event) { },
_mouseCapture: function(event) { return true; }
Run Code Online (Sandbox Code Playgroud)

为什么在我的模拟中没有正确地扩展事件,但是当你用鼠标点击它们时,它们是? - 关于如何强制_mouseDrag:属性服从"ui.draggable.js"中的覆盖扩展的任何想法?

解决这个问题将是巨大的 - 我计划在以后展示主要的好处.

谢谢,-Timothy

编辑:这是一个链接,向您展示我的示例代码:http://www.singingeels.com/jqtest/

编辑2:点击上面的链接和查看源...你会看到我正在尝试做什么.这是一个片段:

$(document).ready(function() {
    var myDiv = $("#myDiv");

    myDiv.draggable();

    // This will set enough properties to simulate valid mouse options.
    $.ui.mouse.options = $.ui.mouse.defaults;

    var divOffset = myDiv.offset(); …
Run Code Online (Sandbox Code Playgroud)

jquery drag-and-drop jquery-ui draggable

21
推荐指数
1
解决办法
3万
查看次数

21
推荐指数
3
解决办法
4万
查看次数

JQuery可拖动并可在IFrame上调整大小(解决方案)

我最近使用JQuery Draggable和Resizable插件遇到了一些麻烦.寻找解决方案,我在许多不同的地方发现了一些非常零碎的代码,最后归结为一个干净的解决方案,这似乎对我来说几乎是完美的.

我以为我会和其他人分享我的发现,如果他们也遇到过这个问题.

我有一个包含和IFrame的div.这个div必须是可调整大小和可拖动的.足够简单 - 将jquery draggable和resizable添加到div中,如下所示:

$("#Div").draggable();
$("#Div").resizable();
Run Code Online (Sandbox Code Playgroud)

一切都很好,直到您拖动包含iframe的另一个div或尝试通过移动当前的iframe来调整当前div的大小.通过iframe时,这两个函数都会停止.

解:

$("#Div").draggable({
    start: function () {
        $(".AllContainerDivs").each(function (index, element) {
        var d = $('<div class="iframeCover" style="zindex:99;position:absolute;width:100%;top:0px;left:0px;height:' + $(element).height() + 'px"></div>');
        $(element).append(d);});
    },
    stop: function () {
        $('.iframeCover').remove();
    }
});



$("#Div").resizable({
    start: function () {
        $(".AllContainerDivs").each(function (index, element) {
            var d = $('<div class="iframeCover" style="z-index:99;position:absolute;width:100%;top:0px;left:0px;height:' + $(element).height() + 'px"></div>');
            $(element).append(d);
        });
    },
    stop: function () {
        $('.iframeCover').remove();
    }
});
Run Code Online (Sandbox Code Playgroud)

请享用!

PS:创建窗口的一些额外代码,当被选中时,被带到其他可拖动的前面:

在可拖动的启动功能中 -

var maxZ = 1;
$(".AllContainerDivs").each(function (index, element) { …
Run Code Online (Sandbox Code Playgroud)

iframe jquery draggable resizable

21
推荐指数
3
解决办法
2万
查看次数

用jquery拖动div来改变div的位置

我正在尝试建立一个网站,用户可以将一些项目(div中的一个项目)拖动到页面上的其他div.它不是一张桌子左右,只是在页面的某个地方划分.

使用html5拖放它运行良好,现在我尝试为移动设备执行此操作.我可以将项目拖动到div,将它们放在那里并阻止这个dropzone,因为只有一个元素应该在dropzone中.我也可以将这个元素拖到另一个div或页面上的其他地方(如果我犯了一个错误,可放置区域只能在第一次删除div时工作)但是我不能在div中删除另一个现在为空的项目再次.

如何再次启用Dropzone?

如果一个被拖到另一个div上,是否有可能改变两个div的位置?

这是我的代码的相关部分:

<script type="text/javascript">
$ (init);
function init() {
    $(".dragzones").draggable({
        start: handleDragStart,
        cursor: 'move',
        revert: "invalid",
    });
    $(".dropzones").droppable({
        drop: handleDropEvent,
        tolerance: "touch",              
    });
}
function handleDragStart (event, ui) {}       
function handleDropEvent (event, ui) {
    $(this).droppable('disable');
    ui.draggable.position({of: $(this), my: 'left top', at: 'left top'});
    ui.draggable.draggable('option', 'revert', "invalid");
}
</script>
<body>
<div id="alles">
<div class="dropzones" id="zone1"><div class="dragzones" id="drag1">Item 1</div></div>
<div class="dropzones" id="zone2"><div class="dragzones" id="drag2">Item 2</div></div>
<div class="dropzones" id="zone3"><div class="dragzones" id="drag3">Item 3</div></div>
<div class="dropzones" id="zone4"><div class="dragzones" id="drag4">Item 4</div></div>
    <div class="dropzones" …
Run Code Online (Sandbox Code Playgroud)

jquery html5 drag-and-drop draggable jquery-mobile

21
推荐指数
1
解决办法
5万
查看次数

使HTML5可拖动项滚动页面?

draggable = "true"在我的网页上的某些div上使用HTML5属性.我想要它,以便当您将其中一个项目拖动到页面底部时,它会向下滚动页面,当您将其拖动到顶部时,它会向上滚动页面.

我最终会在侧边栏上创建一个播放列表,因为根据您在页面上的位置,它不会一直在视图中,当您拖动时页面需要滚动.

我的页面在这里,您可以尝试拖动帖子的图片.在Chrome上,当我拖到底部时,它会自动向下滚动,但不会向上滚动.在Firefox上,它不会自动让我滚动任何方向.有帮助吗?

这是一个简单的jsfiddle,可以帮助您入门.在Chrome上,您应该可以向下拖动谷歌图标,让它向下滚动页面,但不会向上滚动.

html javascript html5 draggable

20
推荐指数
1
解决办法
2万
查看次数