मैं ज़ूमरी यूआई सॉर्ट करने योग्य ज़ूम के साथ काम करने की कोशिश कर रहा हूं। मुद्दा यह है कि माउस उसी तत्व के साथ नहीं चलता है जिस तत्व को आप खींच रहे हैं। ड्रैगगेबल के साथ काम करने के तरीके के बारे में बहुत सारे उदाहरण पोस्ट किए गए हैं। यहाँ खींचने योग्य मदों के लिए वैकल्पिक हल का एक उदाहरण है:JqueryUI को ज़ूम/स्केल के साथ क्रमबद्ध काम करने के लिए कैसे करें - माउस आंदोलनों
http://jsfiddle.net/TqUeS/660/
var zoom = $('#canvas').css('zoom');
var canvasHeight = $('#canvas').height();
var canvasWidth = $('#canvas').width();
$('.dragme').draggable({
drag: function(evt,ui)
{
// zoom fix
ui.position.top = Math.round(ui.position.top/zoom);
ui.position.left = Math.round(ui.position.left/zoom);
// don't let draggable to get outside of the canvas
if (ui.position.left < 0)
ui.position.left = 0;
if (ui.position.left + $(this).width() > canvasWidth)
ui.position.left = canvasWidth - $(this).width();
if (ui.position.top < 0)
ui.position.top = 0;
if (ui.position.top + $(this).height() > canvasHeight)
ui.position.top = canvasHeight - $(this).height();
}
});
मैं उम्मीद करेंगे खींचें घटना की क्रमित करने योग्य संस्करण में क्रमबद्ध घटना द्वारा प्रतिस्थापित किया जा करने के लिए है, लेकिन आप से देख सकते हैं के रूप में नीचे पहेली, यह काम नहीं करता है। सॉर्ट इवेंट में ui.position को सेट करने का कोई प्रभाव नहीं पड़ता है - ऐसा लगता है कि यह इसे सेट करता है और ईवेंट की आग के बाद इसे छोड़ देता है।
http://jsfiddle.net/TqUeS/658/
var zoom = $('#canvas').css('zoom');
var canvasHeight = $('#canvas').height();
var canvasWidth = $('#canvas').width();
$('#canvas').sortable({
items: "div",
sort: function(evt,ui)
{
// zoom fix
ui.position.top = Math.round(ui.position.top/zoom);
ui.position.left = Math.round(ui.position.left/zoom);
// don't let draggable to get outside of the canvas
if (ui.position.left < 0)
ui.position.left = 0;
if (ui.position.left + $(this).width() > canvasWidth)
ui.position.left = canvasWidth - $(this).width();
if (ui.position.top < 0)
ui.position.top = 0;
if (ui.position.top + $(this).height() > canvasHeight)
ui.position.top = canvasHeight - $(this).height();
}
});
किसी को भी एक और वैकल्पिक हल है, तो मैं इसे सुनने के लिए खुशी होगी।
जब मैं ड्रैगगेबल के साथ परीक्षण करता हूं, तो आइटम प्रत्येक कोने की ओर धक्का देता है। क्या यह अपेक्षित गतिविधि है? यह क्रमबद्ध करने में अच्छी तरह से काम करता प्रतीत होता है। शायद मैं पूरी समस्या नहीं देख रहा हूं। – Twisty
यहां परीक्षण: http://jsfiddle.net/Twisty/4nv60ob9/ अगर मैं '$ (" # कैनवास ") को प्रतिस्थापित करता हूं। Css (" zoom ")' '' 'के साथ, मुझे' NaN' के बजाय वास्तविक मान मिलते हैं या 'Infinity'। – Twisty
यह इसे "" के मान के साथ एक स्ट्रिंग के रूप में पढ़ रहा है। एक फिक्स पर काम करना। – Twisty