IE6で、以下のスクリプトを表示させると、
マウスカーソルが砂時計になって、チカチカします。
<script language="JavaScript">
var x = 10;
function hogehoge() {
document.getElementById('test').style.left = x + "px";
x++;
}
setInterval ( 'hogehoge()',50 ) ;
</script>
<div id="test">xxxx</div>
チカチカしなくなるようにしたいのですが、方法が有りましたらご教授願います。
なお、オブジェクトはこれ以上軽くすることは出来ません。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんにちは
とりあえず質問の方ではそうなってるので大丈夫だと思いますがFirefox用に
document.getElementById('rolling').style.left = calcX + "px";
document.getElementById('rolling').style.top = calcY + "px";
にしておいてくださいね(^^)
御察しの通り背景画像を何度も読み込んでいるのが原因と考えられます
解消法としてはrolling boxを覆ったものを移動させればいいです
<style>
.rolling_box {
width: 196px;
height: 204px;
background-repeat: no-repeat;
background-color: #CCCCCC;
background-image:url("images/box_coming_soon.gif");
}
#rolling {
position: absolute;
}
</style>
<div id="rolling"><div class="rolling_box" name="rolling1"> 1 </div></div>
もしくは背景画像にしているということは上にテキスト文があるのだと思いますから<img>とtextの2つに分けてそれを同時に動かすとか
<style>
.rolling_box {
width: 196px;
height: 204px;
position: absolute;
background-color: #CCCCCC;
}
#rollings {
position: absolute;
}
</style>
</head>
<body>
<div id="rolling" class="rolling_box" name="rolling1"><img src="images/box_coming_soon.gif"></div>
<div id="rollings" name="rolling2">1</div>
</body>
<script language="JavaScript">
var isshuu = 2880;
var hankei = 289;
var center_x = 291;
var center_y = 343;
function setPosition( pos ) {
calcPos = ( 2 * 3.14 / isshuu * pos ) + ( 2 * 3.14 / 8 );
calcX = center_x - Math.round( hankei * Math.cos( calcPos ) );
calcY = center_y - Math.round( hankei * Math.sin( calcPos ) );
document.getElementById('rolling').style.left = calcX + "px";
document.getElementById('rolling').style.top = calcY + "px";
document.getElementById('rollings').style.left = calcX + "px";
document.getElementById('rollings').style.top = calcY + "px";
pos++;
if ( pos == isshuu ) pos = 0;
setTimeout( 'setPosition(' + pos + ')',50 ) ;
}
setPosition((isshuu/4));
</script>
No.1
- 回答日時:
本当にこれが原因ならグローバル変数しかないのでは?
<script language="JavaScript">
var x = 10;
var obj=document.getElementById('test').style;
function hogehoge() {
obj.left = x + "px";
x++;
}
setInterval ( 'hogehoge()',50 ) ;
</script>
ご回答いただき、ありがとうございます。
いろいろとやっていたら、少し分って来ました。
以下がシンプルにしたソースです。
ハコ(rolling_box)が時計回りに動くというものです。
<html>
<head>
<style>
.rolling_box {
width: 196px;
height: 204px;
position: absolute;
background-repeat: no-repeat;
background-color: #CCCCCC;
background-image:url(images/box_coming_soon.gif);
}
</style>
</head>
<body>
<div class="rolling_box" id="rolling" name="rolling1">1</div>
</body>
<script language="JavaScript">
var isshuu = 2880;
var hankei = 289;
var center_x = 291;
var center_y = 343;
function setPosition( pos ) {
calcPos = ( 2 * 3.14 / isshuu * pos ) + ( 2 * 3.14 / 8 );
calcX = center_x - Math.round( hankei * Math.cos( calcPos ) );
calcY = center_y - Math.round( hankei * Math.sin( calcPos ) );
document.getElementById('rolling').style.left = calcX;
document.getElementById('rolling').style.top = calcY;
pos++;
if ( pos == isshuu ) pos = 0;
setTimeout( 'setPosition(' + pos + ')',50 ) ;
}
setPosition((isshuu/4));
</script>
</html>
ここで、10行目のbackground-image:url(images/box_coming_soon.gif);をなくすとチカチカしなくなりました。
rolling_boxが動く度に画像を読み込みにいっているような感じにも見えました。
この辺になにかありそうなので、もうちょっと調べてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
jQueryでシンプルドラッグドロ...
-
変数内容をHTML内で表示する方法
-
テキストエリア内の一部の文字...
-
表示・非表示のスクリプトで、...
-
タブで開いてさらにタブ内をア...
-
クリックするとテーブルの列の...
-
▲▲ツリーメニューの詳細?2▲▲Ja...
-
jQueryで同じid属性が複数あっ...
-
自働生成される<div>タグに連番...
-
createElementで作成した要素を...
-
検索結果を別フレームに表示したい
-
HTMLタグに複数のクラスを設定...
-
クリックで色変更後に既に変更...
-
dblclickでdiv要素を一回だけ作...
-
removeAttribute()メソッドで削...
-
classの中の<a>タグにidを追加
-
読み込んだQRコードをフォーム...
-
変数名をどのようにつけるのが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
createElementで作成した要素を...
-
removeEventListenerについて
-
クリックで色変更後に既に変更...
-
iframe内のリンクが飛ばないの...
-
[急ぎ] videoタグで埋め込んだm...
-
背景色を透明化
-
console.log結果をhtmlで表示し...
-
表示・非表示のスクリプトで、...
-
getElementByIdの戻り値がnull...
-
removeAttribute()メソッドで削...
-
テキストエリア内の一部の文字...
-
タブで開いてさらにタブ内をア...
-
IFRAMEの表示/非表示を切り替え...
-
HTMLタグに複数のクラスを設定...
-
jQueryのアコーディオンメニュ...
-
取得した要素がインライン要素...
-
変数内容をHTML内で表示する方法
おすすめ情報