博客列表 >利用jq的动画效果实现导航条的功能—2019年1月25日 12:48

利用jq的动画效果实现导航条的功能—2019年1月25日 12:48

蜗牛的博客
蜗牛的博客原创
2019年01月25日 12:48:38568浏览

一、主要实现功能:

1、页面最顶端有个隐藏的搜索块,移动过去就显示出全部,在点击输入框时获得焦点,当鼠标移时搜索快隐藏

2、移动到第一条导航条,对应的内容背景色改变,字体颜色改变

3、移动到第二条导航条,底部的线跟着鼠标移动

4、移动到第三条导航条的最后一个“其他”功能,会弹出下拉框,箭头指示也相应的改变

二、注意事项:

由于需要用到某些图标,所以需要在head里面引入相应的文档

<link rel="stylesheet" type="text/css" href="layui/css/layui.css">

三、功能代码:


实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>导航条功能的实现</title>
	<link rel="stylesheet" type="text/css" href="layui/css/layui.css">
	<script src="../jquery-3.3.1.js"></script>
	<style>
	*{margin:0;padding: 0;}
	.box{
		width: 100%;
		height:70px;
		background: #f5f5f5;
		box-shadow: 1px 1px 10px #ccc;
		line-height: 70px;
		position: relative;
		top: -65px;

	}
	form{
		width: 800px;
		margin: 0 auto;
		position: relative;
	}
	input{
		width: 800px;
		height: 35px;
		border: none;
		border-radius: 5px;
		padding-left: 15px;

	}
	i{
		width: 28px;
		position: absolute;
		top: 0;
		right: 10px;
		order: 
	}
	i:hover{
		cursor: pointer;
	}
	span{
		display: block;
		width: 48px;
		height: 48px;
		background: url(static/show.jpg) -65px 168px;
		position: absolute;
		right: 0;

	}

	.menu{
		width: 1000px;
		height: 40px;
		background:#f5f5f5;
		margin: 20px auto;
		line-height: 40px;

	}
	.menu li{
		float: left;
		width: 10%;
		font-weight: bold;
		text-align: center;
	}
	.one li:hover a{color: #fff;}
	.three li{position: relative;}
    .three li i{
    	font-size: 12px;
    	margin-left: 8px;
    }
    .three li ul{
    	width: 100px;
    	box-shadow: 0 2px 5px #f5f5f5;
    	position: absolute;
    }
    .three li ul li{
    	width: 100px;
    	line-height: 40px;
    	margin-bottom: 8px;
    }
    .three li ul li:hover{background:#f5f5f5;}
	</style>
</head>
<body>
	<div class="box">
		<form>
			<input type="text" placeholder="# 请输入关键字 #"></input>
			<!-- 相对定位是在其父级元素上做的 -->
			<i class="layui-icon layui-icon-search"></i>
		</form>
		<!-- 下滑标志 -->
		<span></span>
	</div>

	<div>
		<ul class="menu one">
		    <li><a href="">要闻</a></li>
		   	<li><a href="">国际</a></li>
		   	<li><a href="">国内</a></li>
		   	<li><a href="">社会</a></li>
		   	<li><a href="">军事</a></li>
		   	<li><a href="">娱乐</a></li>
		   	<li><a href="">体育</a></li>
		   	<li><a href="">汽车</a></li>
		   	<li><a href="">科技</a></li>
		   	<li><a href="">其他</a></li>
		</ul>


		<ul class="menu two" style="position: relative;">
	       	<li name="0"><a href="">要闻</a></li>
		   	<li name="1"><a href="">国际</a></li>
		   	<li name="2"><a href="">国内</a></li>
		   	<li name="3"><a href="">社会</a></li>
		   	<li name="4"><a href="">军事</a></li>
		   	<li name="5"><a href="">娱乐</a></li>
		   	<li name="6"><a href="">体育</a></li>
		   	<li name="7"><a href="">汽车</a></li>
		   	<li name="8"><a href="">科技</a></li>
		   	<li name="9"><a href="">其他</a></li>
			<div class="ba"style="position: absolute;width:100px;height: 2px;background:#ff6500;bottom: 0;"></div>
		</ul>


		<ul class="menu three">
		    <li><a href="">要闻</a></li>
		   	<li><a href="">国际</a></li>
		   	<li><a href="">国内</a></li>
		   	<li><a href="">社会</a></li>
		   	<li><a href="">军事</a></li>
		   	<li><a href="">娱乐</a></li>
		   	<li><a href="">体育</a></li>
		   	<li><a href="">汽车</a></li>
		   	<li><a href="">科技</a></li>
		   	<li><a href="">其他</a><i class="layui-icon layui-icon-up"></i>
				<ul>
					<li>金融</li>
					<li>趣事</li>
					<li>天气</li>
					<li>房价</li>
				</ul>
		   	</li>
		</ul>

	</div>



	<script>
		
		$(function(){

			//输入框获取焦点触发的效果
			$('input').focus(function(){
				$(this).css('box-shadow','0 0 5px #ff6500 inset')
			})

			//输入框失去焦点触发的效果
			$('input').blur(function(){
				$(this).css('box-shadow','')
			})

			//导航条滑动效果
			$('.box').hover(function(){

				//当鼠标移上时触发的效果
				$(this).stop().animate({top:'0px'},500)
			},function(){
				//当鼠标移出时触发的效果
				$(this).stop().animate({top:'-65px'},500)
			})



			//第一个导航条
			$('.one>li').hover(function(){

				$(this).css('background','#ff6500')
			},function(){

				$(this).css('background','#f5f5f5')
			})

			//第二个导航条
			$('.two>li').hover(function(){
				//滑条滑动的距离
				var x = parseInt($(this).attr('name'))*100
				$('.ba').stop().animate({left:x+'px'},300)
			},function(){
				$('.ba').stop().animate({left:0},300)
			})

			//第三个导航条
			//隐藏里面的内容
			$('.three ul').hide()
			$('.three li').hover(function(){
				$(this).find('i').attr('class',"layui-icon layui-icon-down")
      			$(this).find('ul').slideDown(300)
			},function(){
				$(this).find('i').attr('class',"layui-icon layui-icon-up")
      			$(this).find('ul').slideUp(300)
			})
		})
	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

四、总结:

运用好jQuery的动画效果,能让页面更吸引眼球。

stop()功能一般和animate()功能一起作用,不然animate()会进行到读秒完成才停止,拉不住,这种效果并不好。

找到相应元素的位置很重要,在相应的位置添加对应的功能。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议