Javascript 当鼠标悬停在导航链接上时,如何使其动画化?
当用户将鼠标悬停在每个链接上时,我会尝试使其动画化,最好的方法是什么 我的代码是Javascript 当鼠标悬停在导航链接上时,如何使其动画化?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,当用户将鼠标悬停在每个链接上时,我会尝试使其动画化,最好的方法是什么 我的代码是 <ul class="nav"> <li><a href="batting.html"class="nav">Batting</a></li> <li><a href="bowling.html"class="nav">Bowling</a><li> <a href="i
<ul class="nav">
<li><a href="batting.html"class="nav">Batting</a></li>
<li><a href="bowling.html"class="nav">Bowling</a><li>
<a href="index.html"><img class="logo" src="images/logo.gif" width="125" height="125"></a>
<li><a href="fielding.html"class="nav">Fielding</a></li>
<li><a href="game.html"class="nav">The Game</a></li>
</ul>
-
谢谢。是的,可以使用纯HTML标记和CSS在任何元素上添加悬停动画
.animated
{
transition: prop;
prop: value1;
}
.animated:hover
{
prop: value2;
}
其中prop
是您不希望设置动画的CSS属性。这在大多数浏览器中都非常有效。此外,还可以使用脚本创建此行为
使用您的标记,制作动画的最佳且最简单的无脚本解决方案是使用:hover
和transition
。下面是一个如何设置左边距动画的小技巧:
可以使用数字度量设置任何特性的动画。(12px、12em、12%等)也可以使用非数字属性(即文本对齐
)添加悬停效果,但不能应用转换。此外,还可以使用transition
为同一元素上的多个属性设置动画
因此,您可以纯粹使用CSS创建非常丰富的效果。不需要JavaScript<代码>:悬停效果在几乎所有浏览器中都能正常工作,包括Internet Explorer的古老版本。但是,如果您需要支持具有相同动画过渡效果的过时浏览器,则需要使用JavaScript,几乎所有浏览器都支持并启用JavaScript。我建议使用jQuery JavaScript库来简化脚本
根据luckyamit的回答,下面是一个使用jQuery的相同marginleft
动画的小例子。这在几乎任何web浏览器中都能很好地工作,包括古代版本
$(".nav li").hover(
function()
{
$(this).find("a").stop().animate({"margin-left" : "40px"});
},
function()
{
$(this).find("a").stop().animate({"margin-left": "5px"});
}
);
小提琴:
但是,如果您不需要在这些罕见的浏览器中提供相同的体验,我建议使用纯CSS解决方案,因为它的原则是分离标记、样式和逻辑。丰富的转换效果与样式的关系要比与逻辑的关系大得多,所以它们应该用CSS而不是JavaScript来解决。而且,在大多数情况下,CSS更容易实现,也更快。是的,这可以使用纯HTML标记和CSS在任何元素上添加悬停动画
.animated
{
transition: prop;
prop: value1;
}
.animated:hover
{
prop: value2;
}
其中prop
是您不希望设置动画的CSS属性。这在大多数浏览器中都非常有效。此外,还可以使用脚本创建此行为
使用您的标记,制作动画的最佳且最简单的无脚本解决方案是使用:hover
和transition
。下面是一个如何设置左边距动画的小技巧:
可以使用数字度量设置任何特性的动画。(12px、12em、12%等)也可以使用非数字属性(即文本对齐
)添加悬停效果,但不能应用转换。此外,还可以使用transition
为同一元素上的多个属性设置动画
因此,您可以纯粹使用CSS创建非常丰富的效果。不需要JavaScript<代码>:悬停效果在几乎所有浏览器中都能正常工作,包括Internet Explorer的古老版本。但是,如果您需要支持具有相同动画过渡效果的过时浏览器,则需要使用JavaScript,几乎所有浏览器都支持并启用JavaScript。我建议使用jQuery JavaScript库来简化脚本
根据luckyamit的回答,下面是一个使用jQuery的相同marginleft
动画的小例子。这在几乎任何web浏览器中都能很好地工作,包括古代版本
$(".nav li").hover(
function()
{
$(this).find("a").stop().animate({"margin-left" : "40px"});
},
function()
{
$(this).find("a").stop().animate({"margin-left": "5px"});
}
);
小提琴:
但是,如果您不需要在这些罕见的浏览器中提供相同的体验,我建议使用纯CSS解决方案,因为它的原则是分离标记、样式和逻辑。丰富的转换效果与样式的关系要比与逻辑的关系大得多,所以它们应该用CSS而不是JavaScript来解决。而且,在大多数情况下,CSS更容易、更快地实现
已删除CSS-转换属性中的更改
li {
background: #555;
float: left;
margin-right: 15px;
text-align: center;
border: 1px solid #333;
}
li:hover {
}
这里有一个
已删除CSS-转换属性中的更改
li {
background: #555;
float: left;
margin-right: 15px;
text-align: center;
border: 1px solid #333;
}
li:hover {
}
您可以使用jQuery尝试下面的一个 $('.nav a').mouseover(函数(){ //在此处添加动画更改 }).mouseout(函数(){ //在此处添加默认行为
})您可以使用jQuery尝试下面的一个 $('.nav a').mouseover(函数(){ //在此处添加动画更改 }).mouseout(函数(){ //在此处添加默认行为 })试试这个 //HTML
<ul class="nav">
<li><a href="batting.html"class="nav">Batting</a></li>
<li><a href="bowling.html"class="nav">Bowling</a><li>
<a href="index.html"><img class="logo" src="images/logo.gif" width="125" height="125"></a>
<li><a href="fielding.html"class="nav">Fielding</a></li>
<li><a href="game.html"class="nav">The Game</a></li>
</ul>
//CSS
这是给你的,检查一下。试试这个
//HTML
<ul class="nav">
<li><a href="batting.html"class="nav">Batting</a></li>
<li><a href="bowling.html"class="nav">Bowling</a><li>
<a href="index.html"><img class="logo" src="images/logo.gif" width="125" height="125"></a>
<li><a href="fielding.html"class="nav">Fielding</a></li>
<li><a href="game.html"class="nav">The Game</a></li>
</ul>
//CSS
这是给你的,检查一下。那是标记。不是代码。显示查询代码。给
&
相同的类是不明智的。如果你像这样为.nav
编写CSS,例如.nav{background:none;margin left:100px;}
。那是标记。不是代码。显示查询代码。给
和
相同的类是不明智的。如果你像这样为.nav
编写CSS会怎么样?例如.nav{background:none;margin left:100px;}
。如果需要基于脚本的行为,这是一个很好的解决方案,但是如果不需要更改CSS属性以外的任何内容,:hover
是一个更好的解决方案。这是一个很好的解决方案,如果基于脚本的行为是必要的,但如果不需要更改CSS属性以外的任何内容,:hover
是一个更好的解决方案。请参阅我的答案。请参阅以使其更具互动性。请参阅以使其更具互动性。