MDL-47494 ddmarker: NOBUG use CSS to move target center to point at 0,0 of dragitem div
changed from calculating difference being drag item xy and target center xy which was error prone.
This commit is contained in:
@@ -65,6 +65,14 @@ form.mform fieldset#previewareaheader div.markertexts span.markertext {
|
||||
-khtml-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.que.ddmarker div.dragitems img.target {
|
||||
position:absolute;
|
||||
left:-7px;
|
||||
top :-7px;
|
||||
}
|
||||
.que.ddmarker div.dragitems div.draghome img.target {
|
||||
display:none;
|
||||
}
|
||||
.que.ddmarker .dragitem.yui3-dd-dragging span.markertext {
|
||||
z-index: 3;
|
||||
-moz-box-shadow: 3px 3px 4px #000;
|
||||
|
||||
Vendored
+2
-21
@@ -182,7 +182,7 @@ YUI.add('moodle-qtype_ddmarker-dd', function(Y) {
|
||||
var dragitems = this.doc.drag_items_for_choice(choiceno);
|
||||
var coords = [];
|
||||
dragitems.each(function(dragitem){
|
||||
var bgimgxy = this.convert_to_bg_img_xy(this.get_target_center_xy(dragitem));
|
||||
var bgimgxy = this.convert_to_bg_img_xy(dragitem.getXY());
|
||||
if (this.xy_in_bgimg(bgimgxy) && !dragitem.hasClass('yui3-dd-dragging')) {
|
||||
coords[coords.length] = bgimgxy;
|
||||
}
|
||||
@@ -191,22 +191,6 @@ YUI.add('moodle-qtype_ddmarker-dd', function(Y) {
|
||||
this.set_form_value(choiceno, coords.join(';'));
|
||||
this.reposition_drags();
|
||||
},
|
||||
get_target_center_xy : function (dragitem) {
|
||||
console.log('dragitem.getXY()', dragitem.getXY());
|
||||
var targetnode = dragitem.one('img.target');
|
||||
return [targetnode.getX() + (targetnode.get('offsetWidth') / 2),
|
||||
targetnode.getY() + (targetnode.get('offsetHeight') / 2)];
|
||||
},
|
||||
convert_target_center_xy_to_drag_xy : function (dragitem, targetcenterxy) {
|
||||
var currenttargetxy = this.get_target_center_xy(dragitem);
|
||||
var currentdragitemxy = dragitem.getXY();
|
||||
var difference = [currenttargetxy[0] - currentdragitemxy[0],
|
||||
currenttargetxy[1] - currentdragitemxy[1]];
|
||||
console.log({'targetcenterxy':targetcenterxy});
|
||||
console.log({'difference':difference});
|
||||
return [targetcenterxy[0] - difference[0],
|
||||
targetcenterxy[1] - difference[1]-1];
|
||||
},
|
||||
reset_drag_xy : function (choiceno) {
|
||||
this.set_form_value(choiceno, '');
|
||||
},
|
||||
@@ -261,10 +245,7 @@ YUI.add('moodle-qtype_ddmarker-dd', function(Y) {
|
||||
if (fv !== '') {
|
||||
var coordsstrings = fv.split(';');
|
||||
for (var i=0; i<coordsstrings.length; i++) {
|
||||
var targetxy = this.convert_to_window_xy(coordsstrings[i].split(','));
|
||||
var dragxy = this.convert_target_center_xy_to_drag_xy(dragitemhome, targetxy);
|
||||
coords[coords.length] = dragxy;
|
||||
console.log('coords[coords.length]', dragxy);
|
||||
coords[coords.length] = this.convert_to_window_xy(coordsstrings[i].split(','));
|
||||
}
|
||||
}
|
||||
return coords;
|
||||
|
||||
Reference in New Issue
Block a user