在您阅读本文之前,请访问此网站以了解我要做的事情:
正如您所看到的,菜单下方有一个红色箭头,我想要实现的是......当我将鼠标悬停在菜单按钮上时,箭头移动到相同的按钮I&#39 ; m在没有重新加载页面的情况下盘旋。
理想情况下,我希望箭头移回默认按钮..如果点击其他菜单按钮,也可以更改默认按钮。
如果您知道任何示例的链接等...我真的很感激!
感谢您的时间,
Kerry x
答案 0 :(得分:0)
制作“按钮”锚点。使用css set为:hover
创建一个规则,以设置包含箭头的背景图像。
有很多CSS教程,Nettuts和Webdesigntuts有很多导航文章。或者,如果您对模仿他人感到满意,请找到您喜欢的网站,然后挑选出来源,直到找出他们是如何做到的。
请记住,javascript根本不是完成您正在做的事情所必需的。除非你想要一些动画,即使CSS可以处理大部分工作,我认为纯CSS是更好的方法。
答案 1 :(得分:0)
只需按margin-left
DEMO 左侧的td
移动箭头
$("#Arrow").css({"margin-left":$(this).position().left+($(this).width()/2)-2});
执行此操作将 jQuery 图书馆添加到页面的标题部分
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
将此代码添加到外部js文件中,并将其添加到页面的head部分
$(function(){
$("#MenuPosition").on("hover","td",function(){
$("#Arrow").css({"margin-left":$(this).position().left+($(this).width()/2)-2});
});
});
编辑:要恢复箭头位置,请使用
$(function(){
currentPos = $("#Arrow").css("margin-left");
$("#MenuPosition").on("hover","td",function(){
$("#Arrow").css({"margin-left":$(this).position().left});
});
$("#MenuPosition").on("mouseout","td",function(){
$("#Arrow").css({"margin-left":currentPos});
});
});
注意:请查看计算部分并对其进行更正。
PS:不能正确是因为我从办公室登出时间;)。但我认为你有逻辑做到这一点
答案 2 :(得分:0)
首先,你的DOCTYPE错误。
<!DOCTYPE html PUBLIC "">
这会导致您以奇怪的模式加载页面。将其更改为
<!DOCTYPE html>
对于HTML5或使用完整的包括FSI&amp; FPI。
其次,您使用<table>
进行导航。没有什么严重错误,但人们倾向于使用ul
对于:hover
,您只需使用
#MenuPosition table tbody tr td:hover
{
background-image: url("/images/Arrow.jpg");
}
您可能必须使用paddings
和margins
,或者使用display: block
或display: inline-block
正确定位箭头。
答案 3 :(得分:0)
您可以这样做:
使用跨度在HTML中添加导航/菜单下方的bg箭头:
<ul class="nav">
<li>
<a href="#">Menu 1</a>
<span class="arrow"> </span>
</li>
<li>
<a href="#">Menu 2</a>
<span class="arrow"> </span>
</li>
</ul>
CSS:
.nav {
font-size: anypx;
list-style: none outside none;
margin: 0;
padding: 0;
position: relative;
}
.nav li {
background: #whatev;
display: block;
float: left;
height: anypx;
line-height: anypx;
padding: 0;
text-align: center;
}
.nav li a {
color: #any;
display: block;
padding: any;
position: relative;
text-decoration: none;
width: auto;
}
.arrow {
background: url("images/arrow.png") no-repeat scroll 0 9px transparent;
display: none;
height: anypx;
text-indent: -9999px;
width: whatevs;
z-index: 9999;
}
最后使JS / Jquery工作:
$(document).ready(function(){
Your_menu();
});
function Your_menu(){
$(".nav li").hover(function(){
$(this).find('.arrow').css({visibility: "visible",display: "none"}).show();
},function(){
$(this).find('.arrow').css({visibility: "hidden"});
});
}
这是一个显示以下内容的网站:)
答案 4 :(得分:0)
纯CSS解决方案
检查这个答案。
Is there any way to hover over one element and affect a different element?
所以它可能是:
#thething {
margin: 0;
}
.classone:hover + #thething {
margin-top: 10px;
margin-left: 10px;
}
如果他们是父母div中的兄弟姐妹。