我需要你的帮助:
我有一个网站,我希望在将鼠标悬停在菜单上时更改bg-coler
(就像在rhcp网站上一样),我已经尝试了jquery但它没有用..
(为了清楚起见,我不想改变包含我的菜单的div容器的背景颜色它应该是整个身体..-->代码)
谢谢!
代码:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<script type="text/javascript">
$('.start').hover(function () {
$('html').css('background-color', '#676767')
});
</script>
<?php include_once 'template.php' ?>
<title>Maximilian Braun</title>
</head>
<body>
<div class="start">
<h1>
<a href="actor.php" >Schauspieler</a> - <a href="foto.php">Fotograf</a>
</h1>
</div>
<?php echo footer();?>
</body>
答案 0 :(得分:5)
尝试将代码包装在document's ready
处理程序
$(function(){
$('.start').hover(function(){$('html').css('background-color','#676767') } );
});
由于Jquery在相关元素未加载时无法识别具有类start
的元素。
答案 1 :(得分:2)
快速回答+解释
您的代码无效,因为您在文档加载完成之前使用了jQuery,始终使用以下代码包装代码:
$(document).ready(function(){
//your code goes here
}
或:
$(function(){
//your code goes here
}
只需使用Rajaprabhu建议:
$(function(){
$('.start').hover(function(){
$('html').css('background-color','#676767') } );
});
让颜色动画
然而RHCP website不仅会改变颜色,还会激活此更改。 jQuery无法为颜色设置动画。您可以通过两种方式解决此问题。一种是使用jQuery插件,另一种是使用CSS过渡。
插件
如果你导入像jQuery Color这样的插件,你可以使用:
$(function(){
$('.start').hover(function(){
$('html').animate({backgroundColor: '#676767') } );
});
CSS过渡
除了使用插件处理动画外,您还可以使用CSS动画,它将负责在更改颜色值之间进行转换。
使用原始代码:
$(function(){
$('.start').hover(function(){
$('html').css('background-color','#676767') } );
});
并使用以下CSS
.start {
-webkit-transition: background-color 0.3s ease-out; /* Android 2.1+, Chrome 1-25, iOS 3.2-6.1, Safari 3.2-6 */
transition: background-color 0.3s ease-out; /* Chrome 26, Firefox 16+, iOS 7+, IE 10+, Opera, Safari 6.1+ */
}
PS:如果您使用CSS过渡,请注意IE 9及以下版本不支持CSS过渡。
答案 2 :(得分:0)
您的代码应该在dom ready中
$(function() {
$('.start').hover(function(){$('html').css('background-color','#676767') } );
});
答案 3 :(得分:0)
你应该在DOM准备就绪时调用它,所以把它放在$(function()..
里面,并将;
放在$('html').css('background-color','#676767')
的末尾。
$(function(){
$('.start').hover(function(){$('html').css('background-color','#676767'); } );
});
<强> Demo 强>
答案 4 :(得分:0)
通过使用.ready(处理程序),您可以解决问题: 以下所有三种语法都是等效的:
- $( document ).ready( handler )
- $().ready( handler ) (this is not recommended)
- $( handler )
$(document).ready(function($){
$('.start').hover(function(){$('html').css('background-color','#676767') } );
});