我正在创建导航。到目前为止,我有一个bover-image用于悬停/当前页面项目,该项目仅在悬停/网站处于活动状态时显示。
但是现在,我想推进它并为它添加一个很好的过渡效果。我们的想法是将当前页面项的图标移向悬停元素。
因此,如果您正在开始并将鼠标悬停在'Vertrieb'上,则文本上方的指针应移至Vertrieb。
如果你正在'referenzen'并转向'博客'或'überich',它应该走向它。
任何想法?我已经通过文本转换进行了大量导航,但这超出了我的技能水平。
PS:这是标记:
<ul class="nav">
<li><a href="index.html" title="Start" class="current_page_item">Start</a></li>
<li><a href="about.html" title="Über mich">Über mich</a></li>
<li><a href="philosophie.html" title="Philosophie">Philosophie</a></li>
<li><a href="referenzen.html" title="Referenzen">Referenzen</a></li>
<li><a href="vertrieb.html" title="Vertrieb">Vertrieb</a></li>
<li><a href="coaching.html" title="Coaching">Coaching</a></li>
<li><a href="kontakt.html" title="Kontakt">Kontakt</a></li>
<li><a href="blog.html" title="Blog">Blog</a></li>
</ul>
ul.nav {
position: relative;
float: right;
margin: 28px 10px 0 0;
}
ul.nav li {
padding: 0 20px 0 0;
float: left;
list-style: none;
}
ul.nav li a {
display: block;
padding: 30px 0 0 0;
font-size: 0.9375em;
-webkit-transition-property:color, text, background;
-webkit-transition-duration: 0.25s, 0.25s, 0.25s;
-webkit-transition-timing-function: linear, ease-in;
-moz-transition-property:color, text;
-moz-transition-duration:0.25s;
-moz-transition-timing-function: linear, ease-in;
-o-transition-property:color, text;
-o-transition-duration:0.25s;
-o-transition-timing-function: linear, ease-in;
}
ul.nav li a:hover,
ul.nav li a:focus,
ul.nav li a.current_page_item {
color: #e86228;
background: url(images/nav_pointer.png) no-repeat top;
}
答案 0 :(得分:3)
从评论中转录;
JSfiddle (example with jQuery)
<强> CSS 强>
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
#menu_wrap {
border: 1px dotted blue;
padding: 5px;
}
#nav {
list-style-type: none;
padding: 0px;
margin: 0px;
position: relative;
}
#nav li {
display: inline-block;
margin-right: 15px;
}
#nav li:last-child {
margin-right: 0px;
}
#nav li a {
color: #444;
text-decoration: none;
}
#arrow {
background-image: url('http://www.jukti.com/wp-content/uploads/2011/07/google_pointer_map.png');
background-size: 25px 35px;
height: 35px;
width: 25px;
margin-bottom: 10px;
}
<强>的JavaScript 强>
$(document).ready(function() {
$('#nav li').mouseover(function() {
var pos = $(this)[0].offsetLeft;
pos = pos + Math.floor((($(this).css('width').replace('px', '') * 1) / 2));
pos = pos - Math.floor(($('#arrow').css('width').replace('px', '') * 1) / 2)
// Reset all colors
$('#nav li a').css('color', '#444');
// Animte the arrow
$('#arrow').animate({
'margin-left': pos + 'px'
}, 250);
// Change the color
$('a', this).css('color', 'orange');
});
});