今天主要学习了jq动画,包括隐藏hide 显示show 事件切换toggle 淡入fadeIn 淡出fadeOut 下滑slideDown 上滑slideUp 自定义动画animate,回调函数callback。
课堂演示了上述的动画效果,案例主要讲了移入移出顶部下拉返回效果,和三种水平的导航。代码如下:
一、各种动画演示
实例
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>jq动画</title> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <style> * { margin: 0; padding: 0; } .content { margin: 20px; font-size: 20px; color: #fff; float: left; } .content p { width: 200px; height: 160px; line-height: 160px; background-color: red; text-align: center; position: relative; } .content button { width: 200px; height: 40px; border: none; } #box{width: 95px;height: 40px;border:none;} </style> </head> <body> <div class="content"> <button class="btu1">点我隐藏</button> <p class="box1">~ 我是hide ~</p> </div> <div class="content"> <button class="btu2">点我显示</button> <p class="box2">~ 我是show ~</p> </div> <div class="content"> <button class="btu3">事件切换</button> <p class="box3">~ 我是toggle ~</p> </div> <div class="content"> <button class="btu4">淡入元素</button> <p class="box4">~ 我是fadeIn ~</p> </div> <div class="content"> <button class="btu5">淡出元素</button> <p class="box5">~ 我是fadeOut ~</p> </div> <div class="content"> <button class="btu6">淡出到指定值</button> <p class="box6">~ 我是fadeOut ~</p> </div> <div class="content"> <button class="btu7">下滑效果</button> <p class="box7">~ 我是slideDown~</p> </div> <div class="content"> <button class="btu8">上滑效果</button> <p class="box8">~ 我是slideUp ~</p> </div> <div class="content"> <button class="btu9">动画效果</button> <p class="box9">~ 我是animate ~</p> </div> <div class="content "> <button class="btu10" id="box">动画效果</button> <button class="btu11" id="box">停止动画</button> <p class="box10">~ 我是animate ~</p> </div> <div class="content"> <button class="btu12">callback</button> <p class="box12">~ 我是callback ~</p> </div> <script> $(function(){ // hide()隐藏 $('.btu1').click(function(){ $('.box1').hide(); }); // show()显示 $('.box2').hide(); $('.btu2').click(function(){ $('.box2').show(); }); // toggle()事件切换 $('.btu3').click(function(){ $('.box3').toggle(); }); // 淡入fadeIn() $('.box4').hide(); $('.btu4').click(function(){ $('.box4').fadeIn(800); }); // 淡出 fadeOut() $('.btu5').click(function(){ $('.box5').fadeOut(800); }); // fadeTo 淡化到指定值 $('.btu6').click(function(){ $('.box6').fadeTo(800, 0.3); }); // slideDown 下滑 $('.box7').hide(); $('.btu7').click(function(){ $('.box7').slideDown(); }); // slideUp $('.btu8').click(function(){ $('.box8').slideUp(); }); // animate动画 $('.btu9').click(function(){ $('.box9').animate({ height:'120px', fontSize:'28px' }, 800); }); // stop()停止动画 $('.btu10').click(function(){ $('.box10').animate({ height:'120px', fontSize:'28px' }, 1000); }); $('.btu11').click(function(){ $('.box10').stop(); }); // callback 在动画做完之后,再调用callback里面的函数 $('.btu12').click(function(){ $('.box12').animate({height:'300px'},1000,function(){ $(this).animate({height:'100px'}, 1000); }); }); }); </script> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
二、案例
实例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>案例练习</title> <link rel="icon" type="image/x-icon" href="2.png"> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <link rel="stylesheet" type="text/css" href="layui/css/layui.css"> <style type="text/css"> *{margin: 0;padding: 0;} .box { width: 100%; height: 70px; background-color: #f5f5f5; line-height: 70px; box-shadow: 1px 1px 10px #ccc; border-radius: 4px; position: relative; top: -65px; } form { width: 800px; margin: 0 auto; position: relative; } input { width: 800px; height: 35px; padding-left: 15px; border: none; } form i { font-size: 28px; position: absolute; top: 0; right: 10px; } span { position: absolute; width: 48px; height: 48px; background: url(show.jpg) -64px 168px; right: 0; } .menu { width:1000px; height: 40px; line-height: 40px; margin: 20px auto; background:#f5f5f5; } .menu a{ float: left; text-align: center; width: 10%; font-weight: bold; } .three a{position: relative;} .three a i{font-size: 12px;margin-left: 8px;} .three ul{width: 100px;box-shadow: 0 2px 5px #f5f5f5;position: absolute;} .three ul li{width: 100px;line-height: 40px;} </style> </head> <body> <div class="box"> <form> <input type="text" placeholder="请输入关键词"> <i class="layui-icon"></i> </form> <span></span> </div> <div class="menu one"> <a href="">要闻</a> <a href="">国际</a> <a href="">国内</a> <a href="">社会</a> <a href="">军事</a> <a href="">娱乐</a> <a href="">体育</a> <a href="">汽车</a> <a href="">科技</a> <a href="">其他</a> </div> <div class="menu two" style="position: relative;"> <a href="" name='0'>要闻</a> <a href="" name='1'>国际</a> <a href="" name='2'>国内</a> <a href="" name='3'>社会</a> <a href="" name='4'>军事</a> <a href="" name='5'>娱乐</a> <a href="" name='6'>体育</a> <a href="" name='7'>汽车</a> <a href="" name='8'>科技</a> <a href="" name='9'>其他</a> <div class="ba"style="position: absolute;width:100px;height: 3px;background:#ff6500;top: 37px; "></div> </div> <div class="menu three"> <a href="">要闻</a> <a href="">国际</a> <a href="">国内</a> <a href="">社会</a> <a href="">军事</a> <a href="">娱乐</a> <a href="">体育</a> <a href="">汽车</a> <a href="">科技</a> <a href=""> 其他<i class="layui-icon layui-icon-up"></i> <ul> <li>你说</li> <li>你说</li> <li>你说</li> <li>你说</li> </ul> </a> </div> <!-- --> <script> $(function(){ // 鼠标移入移出 box的left改变 $('.box').hover( function(){ $(this).stop().animate({top:'0px'}, 500); }, function(){ $(this).stop().animate({top:'-65px'}, 500); }); // 搜索框获取焦点边框变色 失去焦点恢复原貌 $('input').focus(function(){ $(this).css('box-shadow','0 0 5px orange inset'); }); $('input').blur(function(){ $(this).css('box-shadow',''); }); // 导航一 $('.one a').hover( function(){ $(this).css({ "background-color":'#ff6500', 'color':'#fff' }); }, function(){ $(this).css({ "background-color":'', 'color':'' }); } ); // 导航二 $('.two a').hover( function(){ var len = parseInt($(this).attr('name')) * $(this).width(); $('.ba').stop().animate({left:len + 'px'},300); }, function(){ $('.ba').stop().animate({left:'0px'},400); } ); // 导航三 $('.three ul').hide(); $('.three a').hover( function(){ $(this).find('i').attr('class', 'layui-icon layui-icon-down'); $(this).find('ul').slideDown(500); }, function(){ $(this).find('i').attr('class', 'layui-icon layui-icon-up'); $(this).find('ul').slideUp(200); } ); }) </script> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:
1、动画都有参数(speed, callback)
2、自定义动画在应用时前面必须加stop()
3、案例较为简单没有特别的,布局还是有点慢
4、代码中对css attr 还有animate参数中的css{] 有点混淆,应该是 css单个css(“属性”,"值")多个css({“属性”:"值" ....}) attr单个attr('属性名','值') 多个attr({“属性”:"值" ....}) animate单个animate({属性:‘值’})多个在后面跟逗号