2014-09-03 99 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