ben senin Sorunu çözdükten: http://dl.dropbox.com/u/169269/group_drag.svg
konu tek sürükleme çemberin cx değiştiren ve cy niteliklerini ancak grup sürükleme bütün grup dönüşümünü etkileyen olmasıydı. Ben dönüşümleri kullanarak şeyler o yüzden tüm eserler basitleştirdik ve yalnızca tek bir ikisi için fonksiyonların kümesini gerekir: (
function startMove(evt, moveType){
x1 = evt.clientX;
y1 = evt.clientY;
document.documentElement.setAttribute("onmousemove","moveIt(evt)")
if (moveType == 'single'){
C = evt.target;
}
else {
C = evt.target.parentNode;
}
}
function moveIt(evt){
translation = C.getAttributeNS(null, "transform").slice(10,-1).split(' ');
sx = parseInt(translation[0]);
sy = parseInt(translation[1]);
C.setAttributeNS(null, "transform", "translate(" + (sx + evt.clientX - x1) + " " + (sy + evt.clientY - y1) + ")");
x1 = evt.clientX;
y1 = evt.clientY;
}
function endMove(){
document.documentElement.setAttributeNS(null, "onmousemove",null)
}
Şimdi startMove çağrı (evt, 'tek') bir tek nesneyi taşımak için, ya startMove evt, 'group') gruba ait olduğu gruba aittir.
Çok teşekkür ederim. Tam olarak kaputun altında sadeliğe ihtiyacım var. Şimdilik görebildiğim tek dezavantaj Firefox desteğinin olmamasıdır (tekrar). Chromium altında mükemmel çalışıyor ve Midori ve Chrome'da localhost üzerinde çalışmıyor! Keşfetmem gereken bir "kara büyü" var (Linux Mint OS). Her neyse, Peter, cevabınız için ve web sayfalarınızdaki güzel eğitimler için teşekkür ederim. – Alex
Numara ile "NaN" değiştirdiğinizde localhost üzerinde çalışır. – Alex
Güzel! Zarafet için +1. –