【问题标题】:Change <body> background image on <div> hover在 <div> 悬停时更改 <body> 背景图像
【发布时间】:2017-02-03 13:22:46
【问题描述】:

假设我在 body 标签上有一个黑白背景图像,我希望它在悬停在 div id=" 上时切换到城市天际线的 背景图像 图像1",以及在夜间悬停在 div id="2" 上时同一天际线的背景图像。我该怎么办?

我已经为此编写了一些 html/css,以及“体面的”python 知识,但没有使用 javascript 等脚本语言的经验。我不喜欢复制大量的 sn-ps 代码,因为我是新手,想学习。

这是我目前所拥有的:

/*css*/

#bg{background:url('a');
}

#header{
  position:absolute;
  border:double 30pt;
  width:95%;
  height:15%;
}

#header img{height:120px;
}

#header img:hover{
  transform: rotate(-10deg);
}

#allies{
  border:double 30pt;
  position:relative;
  width:45%;
  top:250px;

}

#allies:hover ~ #bg{background:url('b');
}

#enemies{
  border:double 30pt;
  position:relative;
  width:45%;
  /*top:55px;*/
  top:-67px;
  left:967px;
}

#enemies:hover ~ #bg{background:url('c')
}

div img{
  width:120px;
  height:100px;
  display:block;
  margin-left:auto;
  margin-right:auto;
  padding-top:10px;
  padding-bottom:5px;
}


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>AE</title>
    <link href="AE.css" rel="stylesheet" type="text/css">
  </head>
  <body id="bg">
    <div id="header">
      <a href="index.htm">
        <img src="http://www.iconsdb.com/icons/preview/black/home-5-xxl.png">
      </a>
    </div>
    <div id="allies">
        <img src="http://fontmeme.com/permalink/170203/949c0c2c2c0c34c044b9b45585717a70.png">
        <ul>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
        </ul>
    </div>
    <div id="enemies">
        <img src="http://fontmeme.com/permalink/170203/e8d4db59e876e5c94bd8f072137e33e2.png">
        <ul>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
        </ul>
    </div>
  </body>
</html>

【问题讨论】:

  • Python 也是一种脚本语言。
  • 您可以使用 javascript 在您的 div 上添加事件侦听器(mouseEnter、mouseLeave)。然后在这些监听器内部,动态地改变背景。一个简单的方法是使用 jQuery,即使我不太喜欢它,这是处理这些事件的简单方法。

标签: html css


【解决方案1】:

我得到了你想要的,使用 Jquery :

jquery:

$( "#allies" ).hover(function() {
    $('body').css("background", "url(https://cdn.pixabay.com/photo/2013/04/14/20/24/water-103817_960_720.jpg");
});

$( "#enemies" ).hover(function() {
    $('body').css("background", "url(http://weknowyourdreams.com/images/fire/fire-02.jpg");
});

Fiddle here

【讨论】:

  • 正是我想要的。非常感谢。
  • 不错!不要忘记将此标记为答案,以帮助人们找到他们正在寻找的东西。祝你有美好的一天!
【解决方案2】:

您无法通过 css 实现这一点。使用 jQuery hover() 函数。在函数内部,您可以使用您在 css 文件中定义的 css() 函数或(更好的)addClass()/removeClass()。 https://api.jquery.com/hover/

js:

$('#allies').hover(function() {
    $('#bg').addClass('newBg1');
}, function() {
    $('#bg').removeClass('newBg1');
});
$('#enemies').hover(function() {
    $('#bg').addClass('newBg2');
}, function() {
    $('#bg').removeClass('newBg2');
});

css:

.newBg1 {
    background-image: #your url;
}
.newBg2 {
    background-image: #your url;
}

【讨论】:

    猜你喜欢
    • 2018-10-31
    • 2020-07-24
    • 1970-01-01
    • 2019-08-06
    • 2011-03-06
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 2014-09-01
    相关资源
    最近更新 更多