`
cpine
  • 浏览: 54568 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

CSS+JQuery实现的性感漂亮导航

阅读更多


 

 

1.demo.html

HTML代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>slick animated menu</title>
  
	<link rel="stylesheet" href="css/main.css" type="text/css" />
	
	<script type="text/javascript" src="js/jquery.js" ></script>
	<script type="text/javascript" src="js/jquery-bp.js" ></script>
	<script type="text/javascript" src="js/navigation.js" ></script>
</head>
<body>
	<div id="header"></div>
	<div id="navigation" class="container">
		<div id="home" class="pri-nav active"><div><a href="home">home</a></div></div>
		<div id="about" class="pri-nav"><div><a href="about">about</a></div></div>
		<div id="services" class="pri-nav"><div><a href="services">services</a></div></div>
		<div id="solutions" class="pri-nav"><div><a href="solutions">solutions</a></div></div>
		<div id="contact" class="pri-nav"><div><a href="contact">contact</a></div></div>
	</div>
	<div class="container">
		<div class="content">
			<div id="content-title"></div>
			<!-- the rest of the content-->
		</div>
	</div>
</body>

 

JS代码:

/**
 * @author Alexander Farkas
 * v. 1.02
 */
(function($) {
	$.extend($.fx.step,{
	    backgroundPosition: function(fx) {
            if (fx.state === 0 && typeof fx.end == 'string') {
                var start = $.curCSS(fx.elem,'backgroundPosition');
                start = toArray(start);
                fx.start = [start[0],start[2]];
                var end = toArray(fx.end);
                fx.end = [end[0],end[2]];
                fx.unit = [end[1],end[3]];
			}
            var nowPosX = [];
            nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
            nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];           
            fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];
            
           function toArray(strg){
               strg = strg.replace(/left|top/g,'0px');
               strg = strg.replace(/right|bottom/g,'100%');
               strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
               var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
               return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
           }
        }
	});
})(jQuery);

 

Js代码

var site_url = '';
var nav  = [ '#home', '#about', '#services', '#solutions', '#contact' ];

$(document).ready(function(){
	setBkgPos();
	
	for ( i = 0; i < nav.length; i++ ) {
		$(nav[i]).bind( 'mouseover', mMouseOver );
		$(nav[i]).bind( 'mouseout', mMouseOut );
		$(nav[i]).bind( 'click', mClick );
	}
	
	for ( i = 0; i < nav.length; i++ ) {
		// element with 慳ctive?class will  start animation 
		if ( $(nav[i]).get(0).className.indexOf('active') >= 0 ){
			$(nav[i])
				.animate({ backgroundPosition:'(' + _getHPos( nav[i] ) +'px -30px}'},"fast",
					function(){ 
						$(this)
							.children()
								.animate({backgroundPosition:'(0px -40px)'},20)
								.animate({backgroundPosition:'(0px -20px)'},"fast");
						$(this)
							.animate({backgroundPosition:'(' + _getHPos( nav[i] ) +'px 50px)'},"fast")
							.animate({backgroundPosition:'(' + _getHPos( nav[i] ) +'px 25px)'},"fast");
						var parent = this;
						$(this)
							.children()
								.animate( {backgroundPosition:'(0px -45px)'},"fast",function(){
											$(parent).animate({backgroundPosition:'(' + _getHPos( parent.id ) +'px 25px)'},"fast");
											$(parent).css({backgroundImage: 'url(img/nav.png)'});
									});
					});
			break;
		}
	}
}); 

function _getHPos( id )
{
	for ( i = 0; i < nav.length; i++ ){
		if ( '#' + id == nav[i] ){
			return i*(-98);
		}
	}	
	
	return 0;
}

function setBkgPos()
{
	for ( i = 0; i < nav.length; i++ ){
		$(nav[i]).css({backgroundPosition: i*(-98) + 'px -25px'});
		$(nav[i] + ' div').css({ backgroundPosition: '0px -60px'});
	}
}

function mMouseOver(e)
{
	// element with 慳ctive?class will ignore this event and do nothing
	if ( this.className.indexOf('active') >= 0  ){
		return;
	}
	
	$(this)
		// stop any animation that took place before this
		.stop()
		// step 1. change the image file
		.css({backgroundImage: 'url(img/nav-over.png)',cursor: 'pointer'})
		// step.2 move up the navigation item a bit
		.animate({ backgroundPosition:'(' + _getHPos( this.id ) +'px -30px}'},"fast",
			// this section will be executed after the step.2 is done
			function(){ 
				$(this)
					.children()
						// step. 3 move the white box down
						.animate({backgroundPosition:'(0px -40px)'},20)
						// step 4. move the white box down
						.animate({backgroundPosition:'(0px -20px)'},"fast");
				$(this)
					// step 4. move the navigation item down
					.animate({backgroundPosition:'(' + _getHPos( this.id ) +'px 50px)'},"fast")
					// step 5. move the navigation item to its final position
					.animate({backgroundPosition:'(' + _getHPos( this.id ) +'px 25px)'},"fast");
				// store the parent element id for later usage
				var parent = this;
				$(this)
					.children()
						// step 5. move the white box to its final position
						.animate( {backgroundPosition:'(0px -45px)'},"fast",
							// this section will be executed after the step.5 is done
							function(){
								// step.6 change the image to its original image	
								$(parent).css({backgroundImage: 'url(img/nav.png)'});
							});
			
			});
}

function mMouseOut(e)
{			
	// element with 慳ctive?class will ignore this event and do nothing
	if ( this.className.indexOf('active') >= 0  ){
		return;
	}
	
	$(this)
		// stop any animation that took place before this
		.stop()
		// step.1 move down navigation item
		.animate({backgroundPosition:'(' + _getHPos( this.id ) +'px 40px )'}, "fast", 
			// this section will be executed after the step.1 is done
			function(){
				// step.2 white box move really fast
				$(this).children().animate({backgroundPosition:'(0px 70px)'}, "fast");
				// step 3. move navigation item up
				$(this).animate( {backgroundPosition:'(' + _getHPos( this.id ) +'px -40px)'}, "fast", 
					// this section will be executed after the step.3 is done
					function(){
						// step 4. move navigation item ot its original position
						$(this).animate( {backgroundPosition:'(' + _getHPos( this.id ) +'px -25px)'}, "fast",
							// this section will be executed after the step.4 is done
							function(){
								// move white box to its original position, ready for next animation
								$(this).children().css({ backgroundPosition:'0px -60px'});
							})
					})
			})
		.css({backgroundImage: 'url(img/nav.png)', cursor: ''});
}

function mClick(e)
{
	location.href = this.id;
}

 

Css代码

body {
	background: url(../img/body-bkg.png) repeat scroll;
	margin: 0;
	padding: 0;
}

.container{
	margin: 0pt auto;
	width:950px;
}

#header{
	background: url(../img/hdr-bkg.png) repeat-x scroll;
	height:181px;
	position:absolute;
	z-index :100;
	top: 0px;
	left:0px;
	width:100%;
}

#navigation{
	height:60px;
}

#home, #home div, 
#about, #about div, 
#services , #services div, 
#solutions, #solutions div, 
#contact,  #contact div {
	height:80px;
	position:absolute;
	width:97px;
	float:left;
}

#home, #about, #services, #solutions, #contact{
	background-image: url(../img/nav.png);
	background-attachment: scroll;
	background-repeat: no-repeat;
	top:171px;
}

#home{
	background-position: 0px -25px;
	margin-left:6px;
}

#about{
	background-position: -98px -25px;
	margin-left:105px;
}

#services{
	background-position: -196px -25px;
	margin-left:204px;
}

#solutions{
	background-position: -294px -25px;
	margin-left:303px;
}

#contact{
	background-position: -392px -25px;
	margin-left:402px;
}

#home div, #about div, #services div, #solutions div, #contact div {
	background-image: url(../img/white.png);
	background-attachment: scroll;
	background-repeat: no-repeat;
	background-position: 0px -60px;	
}	

.pri-nav a{
	display:block;
	text-decoration:none;
	text-indent:-30000px;
}

.content{
	margin-top:160px;
}

#content-title{
	background: url(../img/content-title.png) no-repeat scroll;
	height:323px;
	position:absolute;
	width:100%;
}

 

分享到:
评论

相关推荐

    HTML+css+jQuery实现导航栏效果--pc端

    HTML+css+jQuery实现导航栏效果--pc端 适合前端,下载即可使用。 $(function(){ // 鼠标移入事件 $('.nav&gt;li').mousemove(function(){ $(this).addClass('active').siblings('li').removeClass('active') //...

    html+css+jquery实现左侧边栏滑入滑出

    html+css+jquery实现侧边栏的滑入滑出 分为两种模式 第一种是hover实现, 第二种是jquery实现

    html+jquery+CSS实现最简单的右侧导航栏效果

    以上就是使用HTML、CSS和jQuery实现一个最简单的右侧导航栏的基本步骤。这个导航栏可以根据用户的需求进行扩展和定制,比如添加更多的交互效果、改变样式或者增加更多功能。在实际项目中,你可能还需要考虑其他因素...

    HTML+CSS+JavaScript+jQuery+Bootstrap等前端框架实现的前端案例.zip

    本文将深入探讨这些技术,并基于"HTML+CSS+JavaScript+jQuery+Bootstrap等前端框架实现的前端案例.zip"这个压缩包中的webdemo-master项目,分析它们在实际应用中的作用。 首先,HTML(HyperText Markup Language)...

    html+css+jquery实现企业官方网站模板

    在这个“html+css+jquery实现企业官方网站模板”项目中,我们将深入探讨如何利用这些技术来创建一个专业的企业展示型网站。 HTML(HyperText Markup Language)是网页内容的结构基础,负责定义页面上的各个元素及其...

    网页动画素材 纯css3+jQuery实现抖音网红时钟动画特效(抖音资料)

    网页动画素材 纯css3+jQuery实现抖音网红时钟动画特效(抖音资料)网页动画素材 纯css3+jQuery实现抖音网红时钟动画特效(抖音资料)网页动画素材 纯css3+jQuery实现抖音网红时钟动画特效(抖音资料)网页动画素材 ...

    css+jquery导航

    在网页设计中,导航是至关重要的元素之一,它引导用户浏览网站的不同部分。"CSS + jQuery 导航...这个"css+jquery导航"示例就是一个很好的学习起点,可以帮助开发者理解和应用这两种技术来创建自己的多级导航系统。

    div+css+jquery

    在网页设计和开发中,`div+css+jquery` 是一套常见的技术组合,用于构建现代、响应式的网页界面。下面将分别对这三个主要组件进行详细解释,并探讨它们如何协同工作来实现动态、交互式的效果。 1. **Div(Division...

    DIV+CSS+JQUERY源码实例

    《DIV+CSS+JQUERY源码实例》是一个深入解析网页布局与交互技术的资源集合,主要围绕HTML中的元素、CSS样式表以及JavaScript库jQuery展开。这些技术是现代网页开发的基础,对于创建动态、响应式的用户体验至关重要。...

    Python高校舆情分析监控系统,框架:flask+ html + css + jquery + python + TD-IDF

    Python高校舆情分析监控系统 框架:flask+ html + css + jquery + python + TD-IDF,IDA,NLP算法 +mysql MySQL数据量重置id truncate table tablename python3.9 高校舆情分析监控系统 爬虫三个模块 贴吧 微博

    css+jquery实现简单轮播图效果html代码

    css+jquery实现最简单轮播图效果html代码

    css+jquery实现简单标签页效果html代码

    css+jquery实现最简单标签页效果html代码,效果很好

    HTML+CSS+JavaScript+JQuery+JSP

    HTML+CSS+JavaScript+JQuery+JSP学习笔记为本人看各种教程视频记录下来的,希望对大家有帮助。

    css3+jQuery开灯关灯动画代码.rar

    css3+jQuery开灯关灯动画代码.rar css3+jQuery开灯关灯动画代码.rar css3+jQuery开灯关灯动画代码.rar css3+jQuery开灯关灯动画代码.rar css3+jQuery开灯关灯动画代码.rar css3+jQuery开灯关灯动画代码.rar css3+...

    CSS + jQuery 实现的键盘特效

    总结来说,利用CSS和jQuery实现的键盘特效是一个结合了视觉设计和交互逻辑的综合性技术实践。它不仅提升了无物理键盘设备的输入体验,也为网页增添了一份独特的互动魅力。通过对HTML结构、CSS样式和jQuery事件的巧妙...

    期末作品网页制作css+js+jquery

    作品实现了以下的js功能: (1) 使用正则表达式验证注册页面信息 (2) 网站首页动态显示系统时间 (3) 动态改变导航菜单样式 (4) 制作图片轮显效果 (5) 制作随光标滚动的广告图片效果 (6) 制作光标移到某...

    基于HTML电商购物项目的设计与实现——html+css+javascript+jquery+bootstarp响应式图书商城

    ### 基于HTML电商购物项目的设计与实现——html+css+javascript+jquery+bootstrap响应式图书商城 #### 一、项目概述 本项目旨在通过HTML、CSS、JavaScript、jQuery以及Bootstrap等技术来构建一个完整的响应式电子...

    绝对实用的DIV+CSS+JQUERY模板

    在“绝对实用的DIV+CSS+JQUERY模板”中,jQuery可能被用来实现诸如下拉菜单、滑动效果、图片轮播、表单验证等各种动态功能,提升用户体验。 【DIV】:在HTML中,`&lt;div&gt;`是一个通用的容器标签,用于组合其他HTML元素...

    使用html+css+js+jquery实现小米官网.rar

    在本项目中,“使用html+css+js+jquery实现小米官网.rar”是一个压缩包,它包含了一组文件,用于重现小米官网的前端页面。这个项目主要涵盖了四个关键的技术领域:HTML、CSS、JavaScript以及jQuery,这些都是构建...

    web前端 html+css+js+jquery 网易云音乐官网模仿

    在本项目中,“web前端 html+css+js+jquery 网易云音乐官网模仿”是一个前端学习项目,目的是通过模仿网易云音乐的官方网站来掌握和应用HTML、CSS、JavaScript以及jQuery这四门核心技术。接下来,我们将深入探讨这些...

Global site tag (gtag.js) - Google Analytics