2014-09-03 105 views
-2

我遇到了JS代碼的問題,我想更改元素的CSS屬性「left」。我不確定什麼是確切的問題。我對JS很新穎。以下代碼顯示了我的CSS以及我的JS代碼。使用JS更改CSS屬性「左」不起作用

CSS:

#Slider_Cont_Section 
{ 
    left: 0; 
} 

的JavaScript:

<script type="text/javascript"> 
function FunzioneSliderLeft() 
{ 
var left = document.getElementById("Slider_Cont_Section").style.left; 
if (left = "0px") 
{ 
    left = "0px"; 
} 
else if (left = "-1280px") 
{ 
    left = "0px"; 
} 
else if (left = "-2560px") 
{ 
    left = "-1280px"; 
} 
else 
{ 
    left="-2560px"; 
} 
</script> 




<script type="text/javascript"> 

function FunzioneSliderRight() 
{ 
    var left = document.getElementById("Slider_Cont_Section").style.left; 

    if (left = "0px") 
    { 
     left = "-1280px"; 
    } 

    else if (left = "-1280px") 
    { 
     left = "-2560px"; 
    } 
    else if (left = "-2560px") 
    { 
     left = "-3840px"; 
    } 
    else 
    { 
     left="0px"; 
    } 
</script> 
+1

「不工作」是不夠的解釋。請提供有關您正在嘗試做什麼以及出錯的信息。有沒有錯誤? – Lix 2014-09-03 09:23:18

+0

也請嘗試爲您的帖子創建更有意義的標題。 – Lix 2014-09-03 09:24:00

回答

0

這裏是你的更正後的代碼:

比較的 「==」 或 「===」,而不只是 「=」 。

"=" is for allocation. 
"==" is for checking if it's the same value. 
"===" is for checking same value and same type. 

Here是關於它的更多信息。

您還必須重新設置樣式,否則您只能更改該變量。

function FunzioneSliderLeft() { 

var left = document.getElementById("Slider_Cont_Section").style.left; 

if (left == "0px") { 
    return; } 
if (left == "-1280px") { 
    left = "0px";} 
else if (left == "-2560px") { 
    left = "-1280px";} 
else { 
    left="-2560px"; } 
document.getElementByID("Slider_Cont_Section").style.left = left; 
} 
function FunzioneSliderRight() { 

var left = document.getElementById("Slider_Cont_Section").style.left; 

if (left == "0px") { 
    left = "-1280px"; } 
else if (left == "-1280px") { 
    left = "-2560px";} 
else if (left == "-2560px") { 
    left = "-3840px";} 
else { 
     left="0px"; } 
document.getElementByID("Slider_Cont_Section").style.left = left; 
} 

而不是檢查這麼多的價值,你可以使用開關命令。 爲了進一步改進您的代碼,您可以使用JQuery框架。

function FunzioneSliderLeft() { 

var left = $("#Slider_Cont_Section").css("left"); 

switch(left) { 
    case "0px": 
     return; 
     break; //for the Validator 
    case "-1280px": 
     left = "0px"; 
     break; 
    case "-2560px": 
     left = "-1280px"; 
     break; 
    default: 
     left = "-2560px"; 
} 

$("#Slider_Cont_Section").css("left") = left; 

function FunzioneSliderRight() { 

var left = $("#Slider_Cont_Section").css("left"); 

switch(left) { 
    case "0px": 
     left = "-1280px"; 
     break; 
    case "-1280px": 
     left = "-2560px"; 
     break; 
    case "-2560px": 
     left = "-3840px"; 
     break; 
    default: 
     left = "0px"; 
} 

$("#Slider_Cont_Section").css("left") = left; 
} 

儘管這看起來比您的代碼更好,但還是有很大的改進。你告訴我們,你想要達到什麼確實很棒。

+0

現在的功能工作... thxùfor所有:-D – 2014-09-03 15:51:15

0

林不知道這是否會解決您的問題,但是你的表情:

if (left = "0px") 

實際上是分配。表達式的書寫與「==」是這樣的:

if (left == "0px") 

我希望這能解決你的問題:)

編輯:它不解決問題。但只是記住:)

+0

感謝您的更正: - D – 2014-09-03 15:50:34