当用户将特定链接悬停在页面上时,我正在寻找一种更改页面主体背景的方法(我计划根据悬停的链接将背景更改为不同的颜色),但我打算使这个效果柔和,就像CSS 中的过渡效果一样。有什么办法吗?使用 JS 甚至 CSS?
对于悬停效果,我会使用 JQuery 的悬停功能,但我找不到任何方法来实现柔和的过渡效果。
当用户将特定链接悬停在页面上时,我正在寻找一种更改页面主体背景的方法(我计划根据悬停的链接将背景更改为不同的颜色),但我打算使这个效果柔和,就像CSS 中的过渡效果一样。有什么办法吗?使用 JS 甚至 CSS?
对于悬停效果,我会使用 JQuery 的悬停功能,但我找不到任何方法来实现柔和的过渡效果。
您可以仅使用相对缓动的 CSS 来执行此操作,并使用具有绝对定位的 div 以不显眼地充当主体。
演示http://jsfiddle.net/kevinPHPkevin/Hc7UW/3/
#body {
background: #ccc;
position: absolute;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}
a.one:hover ~ #body {
background: blue;
}
a.two:hover ~ #body {
background: red;
}
a.three:hover ~ #body {
background: yellow;
}
你可以在这里找到更多信息
已编辑- jQuery 版本也
选择父母的方式,即你需要使用jQuery的身体。它可以很容易申请。我会这样做的方式,所以我不必创建很多类等,是通过给出名称颜色的a
an id
。然后我会用它作为颜色的标识符。
演示http://jsfiddle.net/kevinPHPkevin/Hc7UW/5/
$('a').hover(function(){
$('body').css('background', this.id);
}, function(){
$('body').css('background', '#ccc');
});
这个答案非常面向jquery。这意味着您不必在 css 中做太多事情。
所以你可以做一些事情,比如生成不同的颜色并立即附加它们,而无需重新配置 css 样式表。
演示:http: //jsfiddle.net/y5yBg/2/
代码
bg=$(document.body);
color=['orange','rgb(42, 212, 255)','rgb(219, 255, 74)'];
$('li').each(function(e){
$(this).click(function(){
bg.css('background-color',color[e]);
});
});
使用 jQuery + CSS3 过渡的解决方案:
jQuery:
$b = $('body');
$('a').mouseover(function(){ $b.toggleClass('red', true ); })
.mouseout( function(){ $b.toggleClass('red', false ); });
CSS:
body {
-webkit-transition: background-color 2s;
-moz-transition: background-color 2s;
-o-transition: background-color 2s;
transition: background-color 2s;
background-color: white;
}
body.red {
background-color: red;
}
您应该能够调整在此问题中找到的答案以满足您的需求。您可以将 替换为$(this)
您要使用的实际选择器(大概是$('body')
)。请记住,在常规 jQuery 库之上,您需要一个额外的库(jQuery UI 或 jQuery 颜色插件)。