Jquery图像幻灯片。缩小

Jquery图像幻灯片。缩小,jquery,image,draggable,jsfiddle,jquery-slider,Jquery,Image,Draggable,Jsfiddle,Jquery Slider,我正在制作一个横幅,您可以使用jquery幻灯片功能缩放图像,您可以拖动图像。 除了一件事外,它工作得很好。当您在图像下方使用幻灯片放大图像时,效果非常理想。您可以根据需要拖动图像。但当您想再次使用幻灯片功能缩小时。图像正在向左上方移动。 图像必须保持在de div中。因此,当我缩小图像时,图像需要保持在div中 对于我使用的代码: jQuery: var previousValueL = 30; var previousValueT = 45; jQuery顶部有2个变量。我得了30分和45

我正在制作一个横幅,您可以使用jquery幻灯片功能缩放图像,您可以拖动图像。

除了一件事外,它工作得很好。当您在图像下方使用幻灯片放大图像时,效果非常理想。您可以根据需要拖动图像。但当您想再次使用幻灯片功能缩小时。图像正在向左上方移动。

图像必须保持在de div中。因此,当我缩小图像时,图像需要保持在div中

对于我使用的代码:

jQuery:

var previousValueL = 30;
var previousValueT = 45;
jQuery顶部有2个变量。我得了30分和45分,因为。图像的左边距为30像素,右边距为45像素

        if (sliderValue < previousValueL) {
             var l;
             l = $img.position().left;
             if (l < 30) l = l + (previousValueL - sliderValue);
             $img.offset({
                 left: l
             });
         }
         previousValueL = sliderValue;

        if (sliderValue < previousValueT) {
             var t;
             t = $img.position().left;
             if (t < 45) t = t + (previousValueT - sliderValue);
             $img.offset({
                 top: t
             });
         }
         previousValueT = sliderValue;
if(sliderValue
此代码适用于缩小时

您也可以使用以下示例:

希望有人能帮助我


丹尼斯。

问题之一是位置的使用。Position返回元素相对于其父元素的坐标。父对象可能有自己的偏移量。因此,将偏移设置为相对于父对象的坐标可能会导致奇怪的位置

我把你的代码改成使用偏移量

if(sliderValue

我仍然不完全喜欢这个结果,因为图像的大小有点跳跃,所以有时可以看到一些黑色的背景。我不知道现在为什么会这样。

是的,黑色背景很奇怪。但这就是我需要的,非常感谢:)我在
if(t>45){$img.css(“top”,“0px”);}if(l>30){$img.css(“left”,“0px”);}中发现了黑色背景的问题
    if (sliderValue < previousValueL) {
         var l;
         l = $img.position().left;
         if (l < 30) l = $img.offset().left+ (previousValueL - sliderValue);
         $img.offset({
             left: l
         });
     }
     previousValueL = sliderValue;

    if (sliderValue < previousValueT) {
         var t;
         t = $img.position().left;
         if (t < 45) t = $img.offset().top + (previousValueT - sliderValue);
         $img.offset({
             top: t
         });
     }