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:
Jamie Pratt
2011-11-08 14:42:23 +07:00
parent 6409471538
commit 3865a58874
2 changed files with 10 additions and 21 deletions
+8
View File
@@ -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;
+2 -21
View File
@@ -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;