Javascript滑块问题

时间:2011-06-20 13:10:17

标签: javascript css nan parseint

您好,我目前正在处理我的老板给我的脚本,除了IE之外,它不适用于所有浏览器。

现在他正在使用左边的CSS属性为它设置动画,因此他有一个变量,它获取左边的当前值。例如,假设左边等于-100px

现在,只要它具有此值,就会在值上添加10px以使其从左侧移入。

现在我的问题在于parseInt()和数字末尾的"px"前缀。它不断返回NaN而不是左边的值。

有谁知道如何解决这个问题?

提前致谢


更新 好的我已经重写了代码和it can be viewed here,通过重写我的意思是我已经拿走了我的老板代码并更改了变量名称并对其进行了评论,以便更容易理解并查看使用javascript实现的功能。

现在滑块是为了让他选择DIV从左侧滑入并放入到位(DIV由-760px驱散)在IE中工作正常,但不在任何其他浏览器中。然而,我已经为其他浏览器提供了一种方法。通过从-760的末尾删除样式表中的px,它会导致DIV出现,但它不会以应有的方式滑动。

为了让我们更轻松地为他们提供滑块html和CSS,请大家帮忙一点。

The HTML

The CSS

3 个答案:

答案 0 :(得分:0)

尝试抓住

try{
  w=parseInt(document.getElementById("slideDiv").style.left+"make me string");
}catch(e){
  w=0;
  alert(e.toString());
}

答案 1 :(得分:0)

使用parseFloat代替parseInt

答案 2 :(得分:0)

您可以尝试这样的事情:

// should return e.g. "10px":
var valueAsString = document.getElementById('slideDiv').style.left;

// remove "px" at the end, so w will only contain "10":
numericPartOfValue = value.substring(0, value.length - 2);
var w = parseInt(numericPartOfValue);

if(w < 0) { 
   w = w+10; 
   // Note: Updated after the comment below:
   document.getElementById(slideDiv).style.left =w + "px";
}