onmouseleave -- 将背景图像恢复为默认值

onmouseleave --returning background image to default

我正在尝试使用 onmouseleave 方法 return div 的背景图像恢复到默认值。这是 HTML 和 JS:

  <script type="text/javascript">

function displayImage(event) {
event = event || window.event;
var targetElement = event.target || event.srcElement;

 if (targetElement.tagName == "IMG") {
    console.log(document.getElementById("viewer"));
    document.getElementById("viewer").style.backgroundImage = 'url(' + targetElement.getAttribute("src") + ')';}
    }

function leaveImage(event){
  event = event || window.event;
  var targetElement = event.target || event.srcElement;

  if (targetElement.tagName != "IMG") {
    document.getElementById("viewer").style.backgroundImage: URL();
  }

}

其中 displayImage 和 leaveImage 是使用相同 HTML div 标记中的方法调用的:

<div class="thumbnails" onmouseover="displayImage(event)">

本质上,我想 return "viewer" id'd div 元素的背景图像在 mouseleave 上设为默认值(创建两个单独的函数)。我的做法正确吗?

谢谢大家!

我认为这一行应该有一个“=”而不是“:”:

document.getElementById("viewer").style.backgroundImage = URL();

也许这是唯一的问题....

好的,首先;它显示 [Object HTML Collection] 因为你正在调用 getElementsByTagName,请注意它说 Elements,所以你在你的网站上得到每个 p 标签,你想要的是只得到一个。解决方案可以是给p标签一个ID,然后使用getElementById,那么你只会得到单个元素。

其次,您需要将原始 p 标签文本保存在某处,这里是一个将其保存在变量中的示例:

HTML:

<p id="tip">Hover over the image to display larger</p>

Javascript:

var originalText; // Notice this is outside the functions
function displayImage(event) {
    event = event || window.event;  
    var targetElement = event.target || event.srcElement;

    originalText = document.getElementById("tip").innerHTML;
    var altText=targetElement.getAttribute("alt");
    document.getElementById("viewer").innerHTML = altText;


     if (targetElement.tagName == "IMG") {
        console.log(document.getElementById("viewer"));
        document.getElementById("viewer").style.backgroundImage = 'url(' + targetElement.getAttribute("src") + ')';
    }
}

function leaveImage(event){
    event = event || window.event;
    var targetElement = event.target || event.srcElement;

    document.getElementById("viewer").innerHTML = originalText; 

    if (targetElement.tagName != "IMG") {
        document.getElementById("viewer").style.backgroundImage= URL();
      }
 }