十、用JavaScript实现动画效果

鼠标放到链接上,每次只显示图片的一小部分,加快加载速度。

js:

function prepareSlideshow(){

//对象检测

if(!document.getElementsByTagName) return false;

if(!document.getElementById) return false;

if(!document.getElementById("linklist")) return false;

//创建窗口元素

var slideshow=document.createElement("div");

slideshow.setAttribute("id","slideshow");

//创建图片元素

var preview=document.createElement("img");

preview.setAttribute("src","images/topics.gif");

preview.setAttribute("alt","building blocks of web design");

preview.setAttrubute("id","preview");

//将图片添加到窗口

slideshow.appendChild(preview);

var list=document.getElementById("linklist");

//将窗口放在链接表后面

insertAfter(slideshow,list);

//对每一个链接响应事件用函数moveElement

var links=list.getElementsByTagName("a");

links[0].onmouseover=function(){

moveElement("preview",-100,0,10);

}

links[1].onmouseover=function(){

moveElement("preview",-200,0,10);

}

links[2].onmouseover=function(){

moveElement("preview",-300,0,10);

}

}

function moveElement("elementID",final_x,final_y,interval){

//对象检测

if(!document.getElementById) return false;

if(!document.getElementById("elementID")) return false;

var elem=document.getElementById(elementID);

//如果元素已经有一个movement属性,用clearTimeout函数进行复位

if(elem.movement) clearTimeout(elem.movement);

//若果没有style位置属性,就设置为0

if(!elem.style.left) elem.style.left="0px";

if(!elem.style.top) elem.style.top="0px";

//用parseInt函数提取出字符串前面的数值,并转换为数值

var xpos=parseInt(elem.style.left);

var ypos=parseInt(elem.syle.top);

var dist=0;

//检测与目标位置关系

if(xpos==final_x&&ypos==final_y) return true;

if(xpos<final_x){

//用Math对象的ceil方法,向大于方向舍入为最接近的证书

dist=Math.ceil((final_x-xpos)/10);

xpos=xpos+dist;

if(xpos>final_x){

dist=Math.ceil((xpos-final_x)/10);

xpos=xpos-dist;

if(ypos<final_y){

dist=Math.ceil((final_y-ypos)/10);

ypos=ypos+dist;

if(ypos>final_y){

dist=Math.ceil((ypos-final_y)/10);

ypos=ypos-dist;

}

//将数值转换为属性值

elem.style.left=xpos+"px";

elem.style.top=ypos+"px";

//还不懂

var repeat="moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";

//用elem的属性movement来代替全局变量,如果用全局变量的话setTimeout是可以执行,但鼠标指针在链接间快速移动的话,动画将变得混乱,我们需要一个只与正在被移动的那个元素有关的变量,可以为元素创建属性

elem.movement=setTimeout(repeat,interval);

}

css:

#slideshow{width:100px; height:100px; position:relative; overflow:hidden;}

#preview{position:absolute;}

十一、HTML5

使用HTML5之前最好加一个检测工具Modernizr,是一个js库,能提供一些不同的css类名及特性检测属性,是必不可少的,下载下来后放在head里引用这个js文件。

1、canvas

可以通过该元素动态创建和操作图形图像

2、video audio

之前是用object对象引入各种播放器插件,现在可以用自带的这两个标签

但要注意的是,由于各个浏览器支持的视频格式不一样,引用时要将三个主要格式都放上,最好放上下载链接,最后在加个flash保底

还可以改变标准播放控件的外观

3、表单

增加了许多输入控件类型,如电话,邮件等

十二章 略

本书完,下面要自己选择一个合适的库学习使用。

最新文章

  1. 关于httpd服务的安装、配置
  2. MySQL模糊查询
  3. nodejs express 框架解密5-视图
  4. boolalpha
  5. 规则html表单对象赋值
  6. 75. Sort Colors
  7. struts2 s:if标签以及 #,%{},%{#}的使用方法等在资料整理
  8. Oracle数据库作业-3 查询
  9. postgresql 行转列,拼接字符串
  10. centos SSH配置详解
  11. java之路径
  12. angular js一探
  13. JS总结之一:字符串的调用方法
  14. 实例:SSh结合Easyui实现Datagrid的分页显示
  15. RHEL(红帽七)的DNS配置
  16. 阅读GIC-500 Technical Reference Manual笔记
  17. 中小研发团队架构实践之分布式协调器ZooKeeper
  18. 最近的AI
  19. jupyter notebook 代码补全插件工具-nbextensions(并修改默认的工作目录)
  20. BiLstm原理

热门文章

  1. 使用SwingWorker为界面执行异步任务
  2. [原创]SQL表值函数:把用逗号分隔的字符串转换成表格数据
  3. 一款Regular expression在线检测工具
  4. C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法
  5. Pillow不支持color emoji font!
  6. 使用Realsense D400 camera系列跑rgbdslamv2
  7. Jade(Pug) 模板引擎使用文档
  8. CodeForces 110C 【构造】
  9. 洛谷P1024 一元三次方程求解
  10. 分层图最短路【bzoj2834】: 回家的路