JavaScript交互式网页设计 • 【第8章 jQuery动画与特效】

全部章节   >>>>


本章目录

8.1 显示隐藏动画效果

8.1.1 show() 方法与hide() 方法

8.1.2 toggle()方法

8.1.3 实践练习

8.2 淡入淡出动画效果

8.2.1 fadeIn() 方法与fadeOut() 方法

8.2.2 fadeToggle()方法

8.2.3 fadeTo() 方法

8.2.4 实践练习

8.3 滑入滑出动画效果

8.3.1 slideDown() 方法与 slideUp() 方法

8.3.2 slideToggle()方法

8.3.3 实践练习

8.4 自定义动画

8.4.1 简单的动画

8.4.2 移动位置的动画

8.4.3 队列中的动画

8.4.4 动画停止

8.4.5 实践练习

总结:


8.1 显示隐藏动画效果

8.1.1 show() 方法与hide() 方法

show() 方法能动态地改变当前元素的高度、宽度和不透明度,最终显示当前元素

hide() 方法会动态地改变当前元素的高度、宽度和不透明度,最终隐藏当前元素

jQuery 对象.show(duration,[fn]);
jQuery 对象.hide(duration,[fn]);

参数duration 表示动画效果运行的时间,可以使用关键字slow、normal 和fast,分别对应时间长度0.6 秒、0.4秒和0.2 秒。当不设置值时,表示立即显示/隐藏元素

可选参数fn 为在动画完成时执行的函数

示例:使用 show() 方法与hide() 方法以动画的方式显示和隐藏图片

<script type="text/javascript">
  $(function(){
    $("#btn").click(function() {
	if($(this).val()==" 显示") {
	     $("#pic").show("slow",function() {
	     	$(this).css({"border":"1px solid red","padding":"5px"});
        	     });
             	     $(this).val("隐藏");
	} else {
	     $("#pic").hide("slow");
	     $(this).val("显示");	}});});
</script>

8.1.2 toggle()方法

toggle() 方法会动态地改变当前元素的高度、宽度和不透明度,最终切换当前元素的可见状态

如果元素是可见的,则切换为隐藏状态;如果元素是隐藏的,则切换为可见状态

jQuery 对象.toggle(duration,[fn]);

示例:制作可伸缩的垂直菜单的操作

<style>
     //其他样式代码略
     ul li.down{
	background-image:url(../img/down.jpg);
     }
</style>

8.1.3 实践练习

 

8.2 淡入淡出动画效果

8.2.1 fadeIn() 方法与fadeOut() 方法

fadeIn() 方法可以动态地改变当前元素的透明度(其他不变),实现淡入的动画效果,最终显示当前元素

fadeOut() 方法可以动态地改变当前元素的透明度(其他不变),实现淡出的动画效果,最终隐藏当前元素

jQuery 对象.fadeIn(duration,[fn]); 
jQuery 对象.fadeOut(duration,[fn]);

示例:使用 fadeIn() 方法与fadeOut() 方法以淡入淡出的方式显示和隐藏图片

<script type="text/javascript">
  $(function(){
    $("#btn").click(function() {
	if($(this).val()==“淡入") {
	     $("#pic").fadeIn("slow",function() {
	     	$(this).css({"border":"1px solid red","padding":"5px"});
        	     });
             	     $(this).val(“淡入");
	} else {
	     $("#pic").fadeOut("slow");
	     $(this).val(“淡出");	
    }
    });
  });
</script>

8.2.2 fadeToggle()方法

fadeToggle() 方法会动态地改变当前元素的透明度,最终切换当前元素的可见状态

如果元素是可见的,则通过淡出效果切换为隐藏状态;如果元素是隐藏的,则通过淡入效果切换为可见状态

jQuery 对象.fadeToggle(duration,[fn]);

示例:使用fadeToggle()方法实现后三项商品类型的动画效果在淡出和淡入之间切换

<style>
     //其他样式代码略
     ul li.down{
	background-image:url(../img/down.jpg);
     }
</style>
<script type="text/javascript">
    $(function(){
        $("#menu li.lastItem").click(function() {
	     // 切换菜单
	     $("#menu li:gt(5):not(:last)").fadeToggle();
	     // 更换底部箭头方向
	     $(this).toggleClass("down");
         });
    });
</script>

8.2.3 fadeTo() 方法

fadeTo() 方法可以改变元素的透明度到指定某一个值

jQuery 对象.fadeTo(duration,opacity,[fn]);

参数duration 为动画效果的速度,使用方式与hide()、show() 等方法一致

参数opacity 用于指定不透明值,取值范围是0 ~ 1(0 代表完全透明,1 代表完全不透明)

示例:使用fadeTo ()方法改变图片的透明度

<script type="text/javascript">
    $(function(){
        $("#sel").change(function() {
	     var opacity = $(this).val();
	     $("img").fadeTo(3000,opacity);
	}); 
      });
</script>

8.2.4 实践练习

 

8.3 滑入滑出动画效果

8.3.1 slideDown() 方法与 slideUp() 方法

slideDown() 方法会动态地改变当前元素的高度(其他不变),由上到下滑入,即高度向下增大,使其呈现出一种“滑动”的效果,直至最终显示当前元素

slideUp() 方法会动态地改变当前元素的高度(其他不变),由下到上滑出,即高度向上减小,直至最终隐藏当前元素

jQuery 对象.slideDown(duration,[fn]);
jQuery 对象.slideUp(duration,[fn]);

示例:制作图书销售网站中“我的书库”菜单的二级菜单滑入滑出的动画效果

<script type="text/javascript">
  $(function(){
       $(".secondLi").hover(function() {
         $(".secondLi ul").slideDown(2000);
     },function(){
         $(".secondLi ul").slideUp(2000);
     });
    });
</script>
html和css代码略

8.3.2 slideToggle()方法

slideToggle() 方法会动态地改变当前元素的高度(其他不变),最终切换当前元素的可见状态

如果元素是可见的,则通过滑出效果切换为隐藏状态;如果元素是隐藏的,则通过滑入效果切换为可见状态

jQuery 对象.slideToggle(duration,[fn]);

示例:使用slideToggle()方法实现二级菜单滑入滑出的动画效果

<script type="text/javascript">
  $(function(){
       $(".secondLi").click(function() {
         $(".secondLi ul").slideToggle(2000); 
     });
    });
</script>
html和css代码略

8.3.3 实践练习

 

8.4 自定义动画

8.4.1 简单的动画

animate() 方法可以动态地改变当前元素的各种 CSS 属性

jQuery 对象.animate(properties,[duration],[fn]);

参数 properties 使用一个“名:值”形式的对象来设置需要改变的 CSS 属性。

animate() 方法只能改变可以取数字值的 CSS 属性,如宽高,边框粗细,内外边距,元素位置,字体大小,字体间距,背景定位和透明度。

示例:animate() 方法实现图片的放大显示

<script type="text/javascript">
   $(function() {
      $("img").click(function() {
        $(this).animate({width:"180px",height:"180px"},"slow");
      });
   });
</script>
<body>
     <img src="../img/tmac.jpg"/>
</body>

8.4.2 移动位置的动画

通过 animate() 方法,不仅可以利用动画效果增加元素的长度和宽度,还能够利用动画效果改变元素在页面中的位置

示例:使用 animate() 方法改变页面元素的位置

<script type="text/javascript">
   $(function() {
      $("img").click(function() {
	    //属性值前可以加上 "+=" 或 "-=" 运算符号,表示在原先属性值上累加或累减
         $(this).animate({left:"+=100px",top:"+=100px",opacity:0.5},3000);
      });
   });
</script>
<body>
     <img src="../img/tmac.jpg"/>
</body>

8.4.3 队列中的动画

所谓“队列”动画,是指在元素中执行一个以上的多个动画效果,即有多个 animate() 方法在元素中执行

根据这些 animate() 方法执行的先后顺序,形成了动画“队列”,产生“队列”后,动画的效果便按“队列”的顺序进行展示

示例:演示队列中动画的使用

<script type="text/javascript">
   $(function() {
      //<div> 元素点击事件
      $("div").click(function() {
        $(this).animate({height:100},"slow");  // 第 1 列
        $(this).animate({width:100},"slow");  // 第 2 列
          $(this).animate({height:50},"slow");   // 第 3 列
        $(this).animate({width:50},"slow");   // 第 4 列
   });
</script>
<body>
     <div> 队列中的动画 </div>
</body>

8.4.4 动画停止

stop() 方法能够结束当前的动画,并立即进入到下一个动画

jQuery 对象.stop([clearQueue],[gotoEnd]);

不带任何参数的 stop() 方法,则会立即停止当前正在执行的动画,如果后面还有动画要继续,则以当前状态开始接下来的动画

learQueue 参数表示是否清空未执行完的动画队列,gotoEnd 参数表示是否立即完成正在执行的动画

示例:避免当用户光标进入或移出的速度太快,导致移入移出与对应的动画不一致

<script type="text/javascript">
  $(function(){
       $(".secondLi").hover(function() {
         $(".secondLi ul").stop().slideDown(2000);
     },function(){
         $(".secondLi ul").stop().slideUp(2000);
     });
    });
</script>
html和css代码略

8.4.5 实践练习

总结:

  • show()、hide()和toggle()方法使元素以动画效果实现显示和隐藏,改变元素的宽度、高度和透明度属性
  • fadeIn()、fadeOut()、fadeToggle()和fadeTo()方法使元素以动画效果实现淡入和淡出的效果,改变元素的透明度
  • slideUp()、slideDown()和slideToggle()方法使元素以“卷窗帘”的动画效果实现显示和隐藏,改变元素的高度属性
  • 使用animate()方法自定义元素的动画效果,可以实现上述方法中全部属性改变的功能,同时,还可以使用动画的效果,改变其他的元素属性
  • stop()方法能够结束当前的动画,并立即进入到下一个动画

 

JavaScript基础教程(第8版)》循序渐进地讲述了JavaScript及相关的CSS、DOM、Ajax、jQuery等技术。书中从JavaScript语言基础开始,分别讨论了图像、框架、浏览器窗口、表单、正则表达式、用户事件和cookie,并在上一版的基础上新增了两,讲述jQuery框架的基础知识。本书不仅介绍了基础知识和使用方法,也深入探讨了JavaScript应用示例。  《JavaScript基础教程(第8版)》适合有志于从事Web开发和Web设计的初学者阅读,也是高校相关课程理想的教材。 第1 了解JavaScript 1 1.1 JavaScript是什么 1 1.2 JavaScript不是Java 2 1.3 JavaScript的起源 3 1.4 JavaScript可以做什么 3 1.5 JavaScript不能做什么 3 1.6 Ajax是什么 4 1.7 组合式(snap-together)语言 5 1.7.1 对象 5 1.7.2 属性 6 1.7.3 方法 6 1.7.4 将对象、属性和方法组合在一起 6 1.7.5 DOM简介 7 1.8 处理事件 7 1.9 值和变量 8 1.9.1 操作符 8 1.9.2 赋值和比较 9 1.9.3 比较 9 1.10 编写对JavaScript友好的HTML 10 1.10.1 结构、表现和行为 10 1.10.2 div和span 10 1.10.3 class和id 11 1.11 要使用什么工具 12 第2 开始 13 2.1 将脚本放在哪里 13 2.2 关于函数 14 2.3 使用外部脚本 15 2.4 在脚本中添加注释 17 2.5 向用户发出警告 18 2.6 确认用户的选择 19 2.7 提示用户 21 2.8 用链接对用户进行重定向 22 2.9 使用JavaScript改进链接 25 2.10 使用多级条件 28 2.11 处理错误 30 第3 第一个Web应用程序 33 3.1 用循环进行重复操作 33 3.2 将值传递给函数 37 3.3 探测对象 39 3.4 处理数组 40 3.5 处理有返回值的函数 42 3.6 更新数组 43 3.7 使用do/while循环 44 3.8 以多种方式调用脚本 46 3.9 组合使用JavaScriptCSS 47 3.10 检查状态 50 3.11 处理字符串数组 55 第4 处理图像 59 4.1 创建翻转器 59 4.2 创建更有效的翻转器 61 4.3 构建三状态翻转器 64 4.4 由链接触发翻转器 66 4.5 让多个链接触发一个翻转器 68 4.6 处理多个翻转器 71 4.7 创建循环的广告条 74 4.8 在循环广告条中添加链接 76 4.9 建立循环式幻灯片 78 4.10 显示随机图像 80 4.11 随机开始循环显示图像 81 第5 窗口与框架 83 5.1 防止页面显示在框架中 83 5.2 设置目标 84 5.3 用JavaScript加载iframe 86 5.4 Iframes的使用 87 5.5 创建动态iframe 89 5.6 在文档之间共享函数 90 5.7 打开新窗口 92 5.8 为窗口加载不同的内容 96 第6 表单处理 98 6.1 选择并转移导航菜单 99 6.2 动态地改变菜单 102 6.3 建立必须填写的字段 104 6.4 根据其他字段对字段进行检查 109 6.5 标识有问题的字段 111 6.6 准备进行表单验证 113 6.7 处理单选按钮 117 6.8 用一个字段设置另一个字段 119 6.9 检验Zip编码 122 6.10 验证电子邮件地址 126 第7 表单和正则表达式 131 7.1 用正则表达式验证电子邮件地址 131 7.2 验证文件名 136 7.3 提取字符串 139 7.4 格式化字符串 141 7.5 对字符串进行格式化和排序 144 7.6 对字符串进行格式化和验证 146 7.7 使用正则表达式替换元素 148 第8 处理事件 151 8.1 处理窗口事件 151 8.1.1 onload1事件 151 8.1.2 onunload事件 154 8.1.3 onresize事件 154 8.1.4 onmove事件 156 8.1.5 onabort事件 156 8.1.6 onerror事件 156 8.1.7 onfocus事件 156 8.1.8 onblur事件 157 8.2 处理鼠标事件 158 8.2.1 onmousedown事件 158 8.2.2 onmouseup事件 161 8.2.3 onmousemove事件 161 8.2.4 onmouseover事件 163 8.2.5 onmouseout事件 163 8.2.6 ondblclick事件 164 8.2.7 onclick事件 165 8.3 表单事件处理 165 8.3.1 onsubmit事件 165 8.3.2 onreset事件 165 8.3.3 onchange事件 166 8.3.4 onselect事件 166 8.3.5 onclick事件 166 8.3.6 onblur事件 166 8.3.7 onfocus事件 168 8.4 键事件处理 169 8.4.1 onkeydown事件 169 8.4.2 onkeyup事件 172 8.4.3 onkeypress事件 172 第9 JavaScript和cookie 173 9.1 建立第一个cookie 173 9.2 读取cookie 176 9.3 显示cookie 177 9.4 使用cookie作为计数器 178 9.5 删除cookie 180 9.6 处理多个cookie 182 9.7 显示新内容提醒信息 184 第10 对象和DOM 189 10.1 关于节点操纵 189 10.1.1 DOM 2和W3C 189 10.1.2 DOM 2术语 189 10.1.3 DOM 3 190 10.2 添加节点 191 10.3 删除节点 192 10.4 删除特定的节点 194 10.5 插入节点 197 10.6 替换节点 199 10.7 用对象字面值编写代码 202 第11 建立动态页面 206 11.1 在网页上显示当前日期 206 11.2 处理周中的日期 208 11.3 根据时间对消息进行定制 209 11.4 根据时区显示日期 210 11.5 把24小时制转换为12小时制 213 11.6 创建倒数计数器 216 11.7 隐藏和显示层 219 11.8 移动文档中的对象 221 11.9 日期方法 223 第12 JavaScript应用示例 225 12.1 使用可折叠菜单 225 12.2 添加下拉菜单 228 12.3 改进下拉菜单 230 12.4 带说明的幻灯片 233 12.5 一个无聊的姓名生成器 236 12.6 柱状图生成器 240 12.7 样式表切换器 246 第13 Ajax简介 253 13.1 Ajax的定义 253 13.2 读取服务器数据 255 13.3 解析服务器数据 261 13.4 刷新服务器数据 266 13.5 从服务器获得数据 267 13.6 用Ajax预览链接 270 13.7 自动补全表单字段 273 第14 工具包、框架和库 279 14.1 添加jQuery 280 14.2 使用jQuery更新页面 282 14.3 使用jQuery交互 282 14.4 交互与更新 284 14.5 自动完成字段 287 第15 用jQuery设计页面 289 15.1 突出显示新元素 289 15.2 创建可折叠菜单 292 15.3 创建更漂亮的对话框 294 15.4 条纹表格 298 15.5 表格排序 301 第16 基于jQuery的应用 306 16.1 以jQuery为基础 306 16.2 使用ThemeRoller定制外观 307 16.3 在页面中添加日历 309 16.4 拖放元素 313 16.5 使用jQuery处理外部数据 316 16.6 使用jQuery插件 322 第17 bookmarklet 328 17.1 第一个bookmarklet 328 17.2 改变页面的背景颜色 333 17.3 改变页面样式 334 17.4 查询单词 335 17.5 查看图像 337 17.6 显示ISO Latin字符 339 17.7 将RGB值转换为十六进制 340 17.8 对值进行转换 341 17.9 bookmarklet计算器 342 17.10 缩短URL 344 17.11 检验页面 344 17.12 通过电子邮件发送页面 345 17.13 改变页面大小 346
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明金同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值