私はすでに JavaScript でこれを開始しているので、jquery を使用したくありませんが、JavaScript の専門家が私のコードを見て、私が間違っていることや正しいことを教えてくれますか? ここで私が達成しようとしていることをお話ししましょう。4 つのボタンで構成されるメニューがあり、それらにカーソルを合わせると色が変わり、見出しの上にカーソルを合わせると見出し画像の下に表示され、ボタンは元の色に戻り、見出しの下に表示されますテキストを含む別の画像。ほとんどの場合、コードは正常に動作しますが、Firefox では見出しが時々移動します。これは、テキスト画像が表示されていないときに見出しがテキストがある場所に落ちるためだと思います。 IEでこの問題。最大の問題は onmouseout です。私はしません
コードは次のとおりです。
window.onload = rollover;
function rollover()
var images = document.getElementsByTagName("img"); // Get all the images in the document
var roll = new RegExp("roll");
var preload = [];
var fileLoc = "images/rollovers/";
for ( var i=0; i<images.length; i++)
{
if (images[i].id.match(roll)) // Loop through all the images in document and look for match on 'roll'
{
preload[i] = new Image();
preload[i].src = fileLoc + images[i].id + "_over.gif"; // Preload the _overs into an array.
images[i].onmouseover = function() // Add a mouseover event to image
{
this.src = fileLoc + this.id + "_over.gif"; // When rolled over, this file now equals the _over image
var currentButton = this.id; // Grab the id of the current image
var imageHeader = document.getElementById("current_title"); //Grab all images that are titled 'current_title'
var newHeaderImage = new Image();
newHeaderImage.src = fileLoc + currentButton + "_header.gif"; // Create new image and store _Header image inside
newHeaderImage.id = currentButton + "_header"; //New id for new image is file + headerId
imageHeader.src = newHeaderImage.src;
imageHeader.height = newHeaderImage.height; // Assign header image id to currect location
imageHeader.width = newHeaderImage.width;
imageHeader.style.visibility = "visible";
imageHeader.onmouseover = function() // Attach mouse event for header image
{
var imageText = document.getElementById("button_text");
var newTextImage = new Image();
newTextImage.src = fileLoc + currentButton + "_text.gif";
imageText.src = newTextImage.src;
imageText.height = newTextImage.height;
imageText.width = newTextImage.width;
imageText.style.visibility = "visible";
}
}
//images[i].onmouseout = setTimeout(mouseOut(fileLoc, this.id),3000);
}
}
}
/*function mouseOut(fileLoc, curButton)
{
var titleImg = document.getElementById("current_title");
var imgButton = curButton;
this.src = fileLoc + imgButton + "_org.gif";
titleImg.style.visibility = "hidden";
}*/