0

こんにちは、私は現在、上司から与えられたスクリプトに取り組んでいますが、IE 以外のすべてのブラウザーで機能するわけではありません。

今、彼はそれをアニメーション化するために CSS プロパティ left を使用しているので、left の現在の値を取得する変数を持っています。たとえば、 left が に等しいとしましょう-100px

この値を取得したら、値に追加10pxして左から移動させます。

今私の問題は、番号の末尾にあるプレフィックスにparseInt()あります。左の値の代わりに"px"戻り続けます。NaN

この問題を解決する方法を知っている人はいますか?

前もって感謝します


更新:わかりまし た、コードを書き直しました。ここで表示できます。書き直したということは、上司のコードを取得して変数名を変更し、理解しやすくするためにコメントしたことを意味します。ジャバスクリプト。

現在、スライダーは、選択した DIV を左から所定の位置にスライドさせることを目的としています (DIV は -760px オフセットされています) IE ではこれは正常に機能しますが、他のブラウザーでは機能しません。しかし、私は他のブラウザのための方法で修正を考え出しました. -760 の最後からスタイルシートの を削除するpxと、DIV が表示されますが、本来の方法でスライドしません。

簡単にするために、ここでスライダーの html と CSS を提供して、少しでも役立つようにします。

HTML

CSS

4

3 に答える 3

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";
}
于 2011-06-20T13:45:51.817 に答える
0

parseFloatの代わりに使用parseInt

于 2011-06-20T13:29:41.820 に答える
0

キャッチしてみてください

try{
  w=parseInt(document.getElementById("slideDiv").style.left+"make me string");
}catch(e){
  w=0;
  alert(e.toString());
}
于 2011-06-20T13:20:12.773 に答える