2016-07-22 67 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