将鼠标悬停在子 div 上时更改主 div 的背景
Changing background of main div when hovering over subdiv
我有 1 个容器,其中包含 3 个子项目和 Jquery:
$(function() {
$('.sub1').hover(function() {
$('#container').css('background-image', 'url("../img/plan.jpg")');
}, function() {
// on mouseout, reset the background colour
$('#container').css('background-color', '');
});
});
<div id="container">
<div class="sub1">This is link 1</div>
<div class="sub2">This is link 2</div>
<div class="sub3">This is link 3</div>
</div>
目标是在悬停在 "sub1"、"sub2" 或 "sub3" 上时更改 "container" 的背景。每个 sub 在 css 中都有自己的背景图像。一旦鼠标不再悬停在 "sub1"、"sub2" 或 "sub3" 上,背景将 return 变为白色。
不要介意目前还没有 sub2 或 sub3 功能,我稍后会重点介绍这些功能。
我让它一直工作到 mouseout 的那一部分。容器背景不会 return 到它的原始状态(白色)。
有没有高手可以帮助我?
提前致谢,
鲁洛夫!
您正在重置背景颜色而不是背景图像。我冒昧地让它也适用于所有潜艇。 :)
$(function() {
$('#container').on('mouseover', '[class^="sub"]', function() {
var container = $('#container');
switch ($(this).attr('class')) {
case 'sub1':
container.css('background-image', 'url("http://placehold.it/500x50")');
break;
case 'sub2':
container.css('background-image', 'url("http://placehold.it/500x60")');
break;
case 'sub3':
container.css('background-image', 'url("http://placehold.it/500x70")');
break;
default:
}
});
$('#container').on('mouseout', '[class^="sub"]', function() {
$('#container').css('background-image', '');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<div id="container">
<div class="sub1">This is link 1</div>
<div class="sub2">This is link 2</div>
<div class="sub3">This is link 3</div>
</div>
它应该看起来像当鼠标悬停在每个 .sub
上时你会变成红色,否则你会变成绿色
然后你就可以把图片放进去
已编辑:
鼠标悬停时为您添加图像 鼠标移出时获取图像 删除图像并设置颜色
$(function() {
$('#container > div').hover(function() {
$('#container').css('background-image', 'url(http://www.placecage.com/200/300)');
console.log("mouse over");
}, function() {
// on mouseover, reset the background colour
$('#container').css({
'background-color': 'green',
'background-image': 'none'
});
console.log("mouse out");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
<div class="sub1">This is link 1</div>
<div class="sub2">This is link 2</div>
<div class="sub3">This is link 3</div>
</div>
我认为您的代码中唯一的错误是您重置了 background-color
而不是 background-image
属性
$(function() {
$('.sub1').hover(function() {
$('#container').css('background-image', 'url("../img/plan.jpg")');
}, function() {
// on mouseout, reset the background colour
$('#container').css('background-image', ''); // definately here is the error
});
});
我有 1 个容器,其中包含 3 个子项目和 Jquery:
$(function() {
$('.sub1').hover(function() {
$('#container').css('background-image', 'url("../img/plan.jpg")');
}, function() {
// on mouseout, reset the background colour
$('#container').css('background-color', '');
});
});
<div id="container">
<div class="sub1">This is link 1</div>
<div class="sub2">This is link 2</div>
<div class="sub3">This is link 3</div>
</div>
目标是在悬停在 "sub1"、"sub2" 或 "sub3" 上时更改 "container" 的背景。每个 sub 在 css 中都有自己的背景图像。一旦鼠标不再悬停在 "sub1"、"sub2" 或 "sub3" 上,背景将 return 变为白色。
不要介意目前还没有 sub2 或 sub3 功能,我稍后会重点介绍这些功能。
我让它一直工作到 mouseout 的那一部分。容器背景不会 return 到它的原始状态(白色)。
有没有高手可以帮助我?
提前致谢,
鲁洛夫!
您正在重置背景颜色而不是背景图像。我冒昧地让它也适用于所有潜艇。 :)
$(function() {
$('#container').on('mouseover', '[class^="sub"]', function() {
var container = $('#container');
switch ($(this).attr('class')) {
case 'sub1':
container.css('background-image', 'url("http://placehold.it/500x50")');
break;
case 'sub2':
container.css('background-image', 'url("http://placehold.it/500x60")');
break;
case 'sub3':
container.css('background-image', 'url("http://placehold.it/500x70")');
break;
default:
}
});
$('#container').on('mouseout', '[class^="sub"]', function() {
$('#container').css('background-image', '');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<div id="container">
<div class="sub1">This is link 1</div>
<div class="sub2">This is link 2</div>
<div class="sub3">This is link 3</div>
</div>
它应该看起来像当鼠标悬停在每个 .sub
上时你会变成红色,否则你会变成绿色
然后你就可以把图片放进去
已编辑: 鼠标悬停时为您添加图像 鼠标移出时获取图像 删除图像并设置颜色
$(function() {
$('#container > div').hover(function() {
$('#container').css('background-image', 'url(http://www.placecage.com/200/300)');
console.log("mouse over");
}, function() {
// on mouseover, reset the background colour
$('#container').css({
'background-color': 'green',
'background-image': 'none'
});
console.log("mouse out");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
<div class="sub1">This is link 1</div>
<div class="sub2">This is link 2</div>
<div class="sub3">This is link 3</div>
</div>
我认为您的代码中唯一的错误是您重置了 background-color
而不是 background-image
属性
$(function() {
$('.sub1').hover(function() {
$('#container').css('background-image', 'url("../img/plan.jpg")');
}, function() {
// on mouseout, reset the background colour
$('#container').css('background-image', ''); // definately here is the error
});
});