簡體   English   中英

拖動拖動事件后無法設置CSS屬性

[英]Not able to set CSS attribute after draggable drag event

我們正在開發一個jQuery插件,用於創建一個內部有多個“列”的DIV。 當用戶滾動DIV時,滾動將“捕捉”到列邊緣。 我創建了一個演示這個的jsFiddle。 向右滾動框,直到它按到第1列的末尾.http://jsfiddle.net/vcYjm/3/

這是問題所在。 當用戶拖動滾動句柄時,我們使用此代碼在拖動代碼塊處更新列的滾動位置:

$('.'+snapHolder).css('right', snapScrollPos+'px');

這在頁面初始加載時工作正常,但是一旦有位置屬性的任何其他設置,它就會停止工作。 例如,重新加載jsFiddle,然后單擊鏈接“set $('。snapHolder')。css('left',' - 50px')” 阻力將不再起作用。 同樣,如果滾動到第一個捕捉,則滾動不再起作用。

以下是在列之前的快照區域中觸發的代碼:

if ( colOffset > (colWidth - snapSize) && colOffset < colWidth ) {
        inAfter = false;
        if (!inBefore) {
            inBefore = true;                
            console.log("before");
            $('.'+snapHolder).css('left', '-' + fullWidth*(colNum+1) + 'px');
            $handle.parents(':eq(2)').find('.'+dragHandle).css({'left': leftPosition});
        }
    }

在專欄之后:

} else if ( colOffset < snapSize ) {
    inBefore = false;
    if (!inAfter) {
        inAfter = true;
        console.log("after");
        $('.'+snapHolder).css('left', '-' + fullWidth*colNum + 'px');
        $handle.parents(':eq(2)').find('.'+dragHandle).css({'left': leftPosition});
    }
}

這是我注意到的問題。 您正在使用“right”屬性來設置snapHolder的位置。 然而,您使用“left”屬性作為捕捉位置。

設置“left”屬性后,“right”屬性將被忽略。

所以堅持一個。 使用左或右。

你不能同時使用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM