2010-11-22 33 views
4

我是一個新的程序員和英語不是我的母語,所以請提前原諒我的編程和英語錯誤。動態更改css backgroundPosition左和頂部通過jquery

這就是我想要做的:我有一個div標籤,其中包含一個圖像和一個表格(在這個div標籤之外)。通過jquery我試圖archieve「裁剪效果」,所以我讓我的桌子拖動,而拖動我複製圖像,並將其設置爲我的桌子上的背景。現在我需要能夠動態設置表格中圖像的背景位置,因此拖動圖片時顯示爲靜止。裁剪效果通過改變(降低)原始圖像上的不透明度來存檔。 請注意,我不需要創建一個選擇或類似的東西。該表首先以給定的大小創建。完成此操作後,將表格拖到創建裁剪效果的圖像上。

這是我的問題:當我通過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> 

背景的位置設置不正確,但現在它沒有太大的關係的時刻。我只希望有一種方法可以動態地改變最高職位,我將在後面擔心數學問題。我也希望它很清楚。親切的問候,

艾琳

回答

5

background-position CSS屬性可以取兩個參數,用空格分隔:

$("#myTable").css("backgroundPosition", (-parseInt($position.left)).toString() 
    + "px " + (-parseInt($position.top)).toString() + "px"); 
1
backgroundPosition: -parseInt($position.left)+'px ' + -parseInt($position.top) + 'px'}); 

嘗試指定計量單位

+0

我已經嘗試,沒有工作......但無論如何謝謝你,我真的很感激你對我的問題感興趣。對於將來我會說我不認爲這是一個語法錯誤(至少我不希望),我已經嘗試過所有可能的組合XD。現在的語法是唯一一個在背景位置上實際產生一些結果的東西,否則它什麼都不做......只是設置背景。 – Arha 2010-11-22 10:47:26

+0

可能它會錯過左側和頂部位置之間的空間。編輯:正如Frédéric指出:) – 2010-11-22 10:49:03