博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用js把图片做的富有动态感,并对以后需要用着的属性进行封装
阅读量:4962 次
发布时间:2019-06-12

本文共 3437 字,大约阅读时间需要 11 分钟。

首先我们先要导入几张图片(我已导入完毕):

如图

好,我们先写一个

,

定义一个

class="contair",

在这<div>中再定义一个<div></div>,定义一个id="hhs"(随便定义的),然后在下面定义五个图片

1  2 `` 3 ``;

我们再在样式表中写上一些需要用的,如下代码:

1 

我们写一个 1 function $(oId){ 2 return document.getElementById(oId);//这个就是个方法, 方法名字叫$ 参数为oId. 这个是元素oId.传入这个oId, 会帮我们拿到html代码元素里相应的id的对象 };  

再写一个

window.οnlοad=function(){//onload 事件会在页面或图像加载完成后立即发生。 repeatElement($("hhs"))//后面会提到
1 现在我们再写后面主体部分,先定义一个 2 2.    `function repeatElement(exel //定义一个参数){
3 3. var obj = nextSibling(exel,"img");//nextSibling兄弟元素 4 4. while(exel!=null){ //循环 5 5. addClass(obj,"sf"); //后面会提到,addClass为添加节点 6 6. obj.onmouseover = function(){ //光标移到图片上 7 7. this.style.padding = "10px 0px" //this表示上一层的obj部分 8 8. } 9 9. obj.onmouseout = function(){ //光标移除图片10 10. this.style.padding = "10px 0px"11 11. }12 12. obj.nextSibling(obj,"img"); //循环下一次图片13 13. }14 14. }`;15 15. 现在写添加节点addClass:16 16. `function addClass(obj,cn){17 17. var lName=obj.className;//className属性设置或返回元素的 class 属性18 18. if(lName.length ==0){ //判断为019 19. obj.className = cn; 20 20. }else{21 21. obj.className = (" "+cn);22 22. }23 23. }`;24 24. 现在写兄弟节点nextSibling:25 25. `function nextSibling(obj,sname){26 26. var exe=lobj.nextSibling ;//先获取它27 27. for(; exel!=null;exel = exel.nextSibling){28 28. var cname = exel.nodeName.toLocaleLowerCase();//转换为小写29 29. if(cname == sname){30 30. return exel;31 31. }32 32. }33 33. return null; 34 34. }`

我们可以对nextSibling和addClass进行封装,以便以后使用,封装有三种方式

第一种dom.:

1 `var dom = new Object();  2  function $(oId){  3  return document.getElementById(oId);  4  } 5  6 dom.addClass = function(obj, cn){  7  var lName = obj.className;  8  if(lName.length==0){  9  obj.className = cn; 10  }else{ 11  obj.className =(” “+cn); 12  } 13  }14 15 dom.nextSibling = function(obj,sname){ 16  var exel = obj.nextSibling; 17  for(;exel!=null;exel = exel.nextSibling){ 18  var cName = exel.nodeName.toLocaleLowerCase(); 19  if( exel.nodeType==Node.ELEMENT_NODE&&sname==cName){ 20  return exel; 21  } 22  } 23  return null; 24  }`

第二种dom[" "]=

1 `var dom = new Object();  2  function $(oId){  3  return document.getElementById(oId);  4  }  5  dom[“addClass”] = function(obj, cn){  6  var lName = obj.className;  7  if(lName.length==0){  8  obj.className = cn;  9  }else{ 10  obj.className =(” “+cn); 11  } 12  }13 14 dom[“nextSibling”] = function(obj,sname){ 15  var exel = obj.nextSibling; 16  for(;exel!=null;exel = exel.nextSibling){ 17  var cName = exel.nodeName.toLocaleLowerCase(); 18  if( exel.nodeType==Node.ELEMENT_NODE&&sname==cName){ 19  return exel; 20  } 21  } 22  return null; 23  }

第三种var dom = {...}:

 

1 function $(oId){  2  return document.getElementById(oId);  3  }  4  var dom = {  5  addClass: function(obj, cn){  6  var lName = obj.className;  7  if(lName.length==0){  8  obj.className = cn;  9  }else{ 10  obj.className =(” “+cn); 11  } 12  }, 13  nextSibling: function(obj,sname){ 14  var exel = obj.nextSibling; 15  for(;exel!=null;exel = exel.nextSibling){ 16  var cName = exel.nodeName.toLocaleLowerCase(); 17  if( exel.nodeType==Node.ELEMENT_NODE&&sname==cName){ 18  return exel; 19  } 20  } 21  return null; 22  }, 23  `

 效果演示:

转载于:https://www.cnblogs.com/dzlx/p/8111275.html

你可能感兴趣的文章
python——爬虫
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>
wordpress自动截取文章摘要代码
查看>>
[置顶] 一名优秀的程序设计师是如何管理知识的?
查看>>
scanf和gets
查看>>
highcharts 图表实例
查看>>
ubuntu下如何查看用户登录及系统授权相关信息
查看>>
秋季学期学习总结
查看>>
SpringBoot 优化内嵌的Tomcat
查看>>
【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
查看>>
highcharts曲线图
查看>>
extjs动态改变样式
查看>>
PL/SQL Developer 查询的数据有乱码或者where 字段名=字段值 查不出来数据
查看>>
宏定义
查看>>
ubuntu12.04 串口登录系统配置
查看>>