4

我是一名新程序员,英语不是我的母语,所以请提前原谅我的编程和英语错误。

这是我想要做的:我有一个包含图像和表格的 div 标签(在这个 div 标签之外)。通过jquery,我试图归档一个“裁剪效果”,所以我使我的表格可拖动,并且在拖动时我复制图像并将其设置为我表格的背景。现在我需要能够在表格中动态设置图像的背景位置,以便在拖动图片时看起来是静止的。通过更改(降低)原始图像的不透明度来归档裁剪效果。请注意,我不需要创建销售或类似的东西。首先创建具有给定大小的表。完成此操作后,将表格拖到创建裁剪效果的图像上。

这是我的问题:当我通过 jquery(.css) 设置背景图像的位置时,它不会改变顶部位置,左侧位置也不会按预期工作。

让我们看看javascript代码:

<script type="text/javascript">

$(function() {
    $("#myTable").draggable({
        drag:function() {
            //$("#myTable").css("opacity", "0.6");
            var $img = $("img").clone();
            var $src = $img.attr('src');
            $("#myTable").css("background-image", 'url(' + $src + ')');
            $position = $("#myTable").position();

            $("#myTable").css({
                backgroundPosition: -parseInt($position.left) + -parseInt($position.top)});
        },
        stop:function() {
            //$("#myTable").css("opacity", "1.0");
            $("#div1").css("opacity", "0.6");
        }
    });
});

</script>

背景的位置现在没有正确设置,但目前没有太大关系。我只是希望有一种方法可以动态地改变顶部位置,我稍后会担心数学。我也希望它足够清楚。亲切的问候,

艾琳

4

3 回答 3

5

background-position CSS 属性可以接受两个参数,由空格字符分隔:

$("#myTable").css("backgroundPosition", (-parseInt($position.left)).toString()
    + "px " + (-parseInt($position.top)).toString() + "px");
于 2010-11-22T10:43:40.573 回答
1
backgroundPosition: -parseInt($position.left)+'px ' + -parseInt($position.top) + 'px'});

尝试指定度量单位

于 2010-11-22T10:38:58.963 回答
0

我知道这篇文章很老了,但我通过在互联网上观看各种关于 jquery 的教程发现了一种方法。

   $(window).scroll(function(){
   var scroll_Position = $(window).scrollTop();
   $('.your_target').css({ 
       'background-position-x' : - scroll_Position + 'px',
       'background-position-y' : + scroll_Position + 'px',  
   })
})
于 2019-08-27T21:48:23.077 回答