如何将鼠标悬停在链接上时更改 DIV 背景
How to change DIV background when i hover a link?
当我悬停几个链接时,我可以更改div的背景图像吗,我的意思是如果我将鼠标悬停在link1上,有一个背景,link2有一个背景,依此类推。
<div style="background: url(image1.jpg) no-repeat right; ">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
<a href="#">Link 4</a>
</div>
可以用JavaScript,jQuery或简单的CSS技巧来完成吗?
谁能告诉我我做错了什么
????<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script type="text/javascript">
$('.background-changer').on('mouseover', 'a', function () {
var background = "url('" + $(this).attr('data-background') + "')";
$('.background-changer').css('background-image', background)
});
</script>
</head>
<body>
<div style="background:url(http://i.dailymail.co.uk/i/pix/2013/01/01/article-2255449-16B57005000005DC-878_964x641.jpg) no-repeat right;" class="background-changer">
<a href="#" data-background="https://twimg0-a.akamaihd.net/profile_images/1298643948/FranceFlag_svg.png">Link 1</a>
<a href="#" data-background="http://cdn.londonandpartners.com/visit/london-organisations/houses-of-parliament/63950-640x360-london-icons2-640.jpg">Link 2</a>
<a href="#" data-background="http://i.dailymail.co.uk/i/pix/2013/01/01/article-2255449-16B57005000005DC-878_964x641.jpg">Link 3</a>
<a href="#" data-background="http://us.123rf.com/400wm/400/400/godrick/godrick1002/godrick100200011/6503920-tower-bridge-london-england-uk-europe-illuminated-at-dusk.jpg">Link 4</a>
</div>
</body>
</html>
使用数据属性
j查询:
$('.background-changer').on('mouseover', 'a', function () {
var background = "url('" + $(this).attr('data-background') + "')";
$('.background-changer').css('background-image', background)
});
.HTML:
<div style="background: url(image1.jpg) no-repeat right;" class="background-changer">
<a href="#" data-background="image1.jpg">Link 1</a>
<a href="#" data-background="image2.jpg">Link 2</a>
<a href="#" data-background="image3.jpg">Link 3</a>
<a href="#" data-background="image4.jpg">Link 4</a>
</div>
现场示例
查看示例 http://codepen.io/yardenst/pen/LJldn
使用数据属性以声明方式设置背景色
<div style="background: url(image1.jpg) no-repeat right; ">
<a href="#" data-bg="yellow">Link 1</a>
<a href="#" data-bg="green">Link 2</a>
<a href="#" data-bg="#000">Link 3</a>
</div>
$("a").on("mouseover",function(){
$(this).parent().css("background-color",$(this).attr("data-bg"));
});
是的,你可以在这里编写代码:
$('a').mouseover(function () {
$(this).parent().css('background', new_background);
});
这是使用 jQuery
,您可以选择所有anchors
并订阅鼠标悬停事件。然后,在悬停的元素的父元素上应用新的CSS
背景属性值。您可以使用mouseout()
恢复旧背景,但是从锚点移动到anchor
时会得到一些闪烁效果,因此您可以使用超时来还原背景。仅供参考,使选择器更具体,因为目前它适用于文档中的所有锚点。通过为div 提供 ID 或某个特定类,将其限制为div 中的所有锚点。
使用简单的 JS:
<!DOCTYPE html>
<html>
<head>
<script>
function chgBG(e){
document.getElementsByTagName('body')[0];
body.style.backgroundImage = 'url(newImage.jpg)';
}
</script>
</head>
<body>
<div id="focusArea" onmousemove="getPos(event)">
<p>Mouse Over This Text And Background will change!</p>
</div>
</body>
</html>
bk 变量将保存默认颜色,然后应用悬停功能更改颜色。 然后在鼠标离开时,您替换为默认颜色
<div style="background: silver; ">
<a href="#black">Link 1</a>
<a href="#green">Link 2</a>
<a href="#red">Link 3</a>
<a href="#gray">Link 4</a>
</div>
var bk = $('div').css('background');
$('a').hover(function(){
$('div').css('background',$(this).attr('href').replace("#",''));
// or
// $(this).parent().css('background',$(this).attr('href').replace("#",''));
});
有很多方法可以做到这一点。一种简单的方法是给你的div一个ID,每个链接一个ID:
<div id="parent" style="background: url(image1.jpg) no-repeat right; ">
<a id="link1" href="#">Link 1</a>
<a id="link2" href="#">Link 2</a>
<a id="link3" href="#">Link 3</a>
<a id="link4" href="#">Link 4</a>
</div>
然后将 JavaScript 与 jQuery 一起使用:
$('#parent a').hover(function() {
var color;
switch($(this).attr('id')) {
case 'link1': color = 'red'; break;
case 'link2': color = 'black'; break;
case 'link3': color = 'yellow'; break;
case 'link4': color = 'green';
}
$(this).parent().css({ 'background': color });
});
显然,使用有意义的 ID。
您还可以为每种背景色提供一个 CSS 类,并在悬停时将其分配给父级,或使用多种其他解决方案。这一切都是为了弄清楚什么对您的应用程序最有意义。如果你要有大量的链接,你会想要使用一个更动态的解决方案,也许给链接 ID 如 link_red
和 link_yellow
,然后从 JavaScript 中的 ID 中提取颜色。
试试这个:
jQuery
$(document).ready(function(){
$('.selector a').hover(function() {
var targetBG = $(this).attr('id');
$('.selector').css({'background':'url('+targetBG+'.jpg) no-repeat right'});
});
});
.HTML
<div class="selector" style="background: url(image1.jpg) no-repeat right; ">
<a href="#" id="image1">Link 1</a>
<a href="#" id="image2">Link 2</a>
<a href="#" id="image3">Link 3</a>
<a href="#" id="image4">Link 4</a>
</div>
onmouseover="this.parentNode.style.backgroundImage = 'url(newimage.gif)'"
如果你喜欢纯JS。
parentNode 获取 u 使用的 onmouseover 的上述元素,在这种情况下,u 在 a 元素上添加 onmouseover 以获取它的上述元素。
首先,如果可以避免,则不应使用内联样式。
<div class="some-class-name">
<a class="link1" href="#">Link 1</a>
<a class="link2" href="#">Link 2</a>
<a class="link3" href="#">Link 3</a>
<a class="link4" href="#">Link 4</a>
</div>
.some-class-name {
background: url(image1.jpg) no-repeat right;
}
使用 jQuery 在每个链接的悬停上向包含的div 添加/删除类来更改背景图像。
$(".link1").hover(
function () {
$(this).parent().addClass("link1-bg");
},
function () {
$(this).parent().removeClass("link1-bg");
}
);
$(".link2").hover(
function () {
$(this).parent().addClass("link2-bg");
},
function () {
$(this).parent().removeClass("link2-bg");
}
);
$(".link3").hover(
function () {
$(this).parent().addClass("link3-bg");
},
function () {
$(this).parent().removeClass("link3-bg");
}
);
$(".link4").hover(
function () {
$(this).parent().addClass("link4-bg");
},
function () {
$(this).parent().removeClass("link4-bg");
}
);
你的css类将由上面的jQuery代码添加。
.link1-bg {
background: url(link1-bg.jpg) no-repeat right;
}
.link2-bg {
background: url(link2-bg.jpg) no-repeat right;
}
.link3-bg {
background: url(link3-bg.jpg) no-repeat right;
}
.link4-bg {
background: url(link4-bg.jpg) no-repeat right;
}
- 如何设置DIV背景图像css jquery
- 根据其宽度更改DIV背景颜色
- Div背景图像打印空白
- 链路翻转时的 DIV 背景图像交换
- 将功能元素 IMG 更改为 DIV 背景
- JS - 使用变量设置 Div 背景颜色
- 从我的 Div 背景图像属性中循环 3 个图像
- 更改中继器DIV背景
- jQuery 使用 css() 更改 DIV 背景
- AJAX/jQuery:根据其中的数字值更改 DIV 背景
- Mousover 父 DIV 用于更改子 DIV 背景
- 通过点击更改日期字符串并更改 DIV 背景颜色
- 更改表单中所有输入的 DIV 背景颜色
- 使用jQuery交换Div背景图像
- Div背景更改OnClick
- JavaScript改变DIV背景使用ID
- 更改DIV背景颜色
- 如何移动/动画DIV背景图像平滑垂直
- 要剪切Div背景的掩码的文本
- 在输入文件中更改DIV背景为jpg