2016-07-22 66 views
3

我得到了這段代碼我無法弄清楚如何不超過父母div邊界。如何讓這個圖像不離開父母div

對象的可拖動和我用滑塊調整它,但我不能如何做到這一點,謝謝。

$(document).on("input change",'.image-slider', function() { 

    $('#timelineBGload-perfil').draggable(); 

    var slider = parseInt($(this).val()); 

    var height1 = $('#timelineBGload-perfil').height(); 
    var width1 = $('#timelineBGload-perfil').width(); 

    var percent1 = width1/600 * 100; 

     var jeje = slider - 191; 
     var jeje2 = slider - 191; 

     $('#timelineBGload-perfil').css({'width': slider,'height':'auto'}); 

     $('#timelineBGload-perfil').css({'left': '-'+ jeje +'px','top': '-'+ jeje2 +'px'}); 

    }); 

https://jsfiddle.net/fypqgym1/

+1

它在jsfiddle上工作。 – Fil

+1

其工作,直到調整大小 –

+0

你得到它的工作? – Scott

回答

0

您必須在移動它之前,考慮到圖像的位置。我加入這個關鍵部分,你的邏輯:

var previousLeft = $('#timelineBGload-perfil').css('left'); 
var previousTop = $('#timelineBGload-perfil').css('top'); 

下面是一些優化工作的例子: https://jsfiddle.net/fypqgym1/11/

您需要用圖像和尺寸的工作,使其無論你需要的。您也可以添加一個初始化步驟,讓您按照啓動時所需的方式進行對齊。

+1

謝謝它工作正常,只是我需要圖像不會離開父div當我調整圖像的更高和更慢的調整 –

+0

Wow一年+原始答案後。看起來您應該檢查計算出的「left」和「top」值,並通過'Math.max'和'Math.min'將它們限制爲最小值和最大值。 – Scott

+0

另外,很高興聽到它工作正常。如果它有幫助,你應該標記爲被接受的答案。 – Scott