使用数据属性拖放

Drag and drop using data attributes

本文关键字:拖放 数据属性      更新时间:2023-09-26

我有一个带有数据颜色属性的拖放,您将一种颜色拖放到所需的网格正方形上。但是,我想用图像来做到这一点,我对如何做到这一点以及如何正确使用 data-image-src=" 属性有点困惑。

正确的方法是什么?

这是我的 html:

<div class="peg col-md-2" x-lvl-draggable="true" data-color="green">Green</div>
<div class="peg col-md-2" x-lvl-draggable="true" data-color="red">Red</div>
<div class="peg col-md-2" x-lvl-draggable="true" data-color="blue">Blue</div>
<div class="peg col-md-2" x-lvl-draggable="true" data-color="black">Black</div>
<div class="peg col-md-2" x-lvl-draggable="true" data-color="grey">Grey</div>

我的css:

.red {
    background: 
}
.blue {
    background-color: blue;
}
.green {
    background-color: green;
}
.black {
    background-color: black;
    color: white;
}
.grey {
    background-color: grey;
}

这是我的JS:

angular
            .module('ddApp', ['lvl.directives.dragdrop']) 
            .controller('ddController', ['$scope' , function($scope){ // function referenced by the drop target
                $scope.dropped = function(dragEl, dropEl) {
                    var drop = angular.element(dropEl);
                    var drag = angular.element(dragEl);
                    //clear the previously applied color, if it exists
                    var bgClass = drop.attr('data-color');
                    if (bgClass) {
                        drop.removeClass(bgClass);
                    }
                    //add the dragged color
                    bgClass = drag.attr("data-color");
                    drop.addClass(bgClass);
                    drop.attr('data-color', bgClass);
                    //if element has been dragged from the grid, clear dragged color
                    if (drag.attr("x-lvl-drop-target")) {
                        drag.removeClass(bgClass);
                    }
                }
            }]);

最简单的方法是通过背景图像更改颜色类:url(")。因此,控制器会将此图像类分配给放置的元素。

如果需要通过数据绑定定义大量图像源,则可以在属性上定义源图像,例如数据图像,并将此数据图像值分配给丢弃的图像元素源。