本文实例为大家分享jquery实现百度新闻导航菜单滑动动画,供大家参考,具体内容如下
思路与步骤 1.利用UL创建简单横向导航;
-
...
3.添加菜单项的滑动事件,计算div-hover的滑动要素,左,上边距以及宽度;
<div class="jb51code">
<pre class="brush:js;">
<script type="text/javascript">
var divHoverLeft = 0;
var aWidth = 0;
$(document).ready(function () {
$("a").on({
'mouseover': function () {
SetDivHoverWidthAndLeft(this);
//设置滑动动画
$(".div-hover").stop().animate({ width: aWidth,left: divHoverLeft },150);
}
});
});
function SetDivHoverWidthAndLeft(element) {
divHoverLeft = GetLeft(element);
aWidth = GetWidth(element);
}
//获得Li宽度
function GetWidth(ele) {
return $(ele).parent().width();
}
//获得div-hover左边距
function GetLeft(element) {
//获得li之前的同级li元素
var menuList = $(element).parent().prevAll();
var left = 0;
//计算背景遮罩左边距
$.each(menuList,function (index,ele) {
left += $(ele).width();
});
return left;
}
效果预览
从预览效果可以看出,div-hover的定位是有问题的,div-hover应该以父级元素绝对定位,所以修改代码(注释部分为修改点)如下:
虽然解决了定位问题,但是背景图片还是浮于文字上方,所以调整代码,将文字浮动于红色div之上:
效果预览
4.添加菜单点击,以及加载页面默认菜单选中;
<div class="jb51code">
<pre class="brush:xhtml;">
<style type="text/css">
/**设置菜单激活***/
.active
{
background-color: Red;
}