js实现点小图看大图效果的思路及示例代码


Posted in Javascript onOctober 28, 2013

DOM:就是用JavaScript操作HTML节点。

知识点:

将HTML变成DOM树

看到HTML会画DOM树。

创建节点,添加节点,删除节点

varnodeObj = document.createElement(“节点名”); //创建元素节点

document.createTextNode(“文本”); //创建文本节点

父节点.appendChild(子节点); //把子节点添加到父节点下

父节点.removeChild(子节点);

//获得节点

document.getElementById(“id号”);

document.getElementsByTagName(“html的标签名”)[0];

父节点.getElementsByTagName(“html的标签名”)[0];

//获得子元素的节点

父节点.childNodes

父节点.firstChild

父节点.lastChild

//节点的属性

nodeType 1元素节点 2属性节点 3文本节点

nodeName 元素节点使用,返回标签名的大写字符串

nodeValue 文本节点使用,返回或设置文本

//获得兄弟节点

当前节点.nextSiblings

设置节点的属性

节点.setAttribute(属性名,值);

节点.getAttribute(属性名);

p.setAttrubute(“style”,”color:red;font-size:20px;”);

//一般做法,可以设置或获取

节点.属性名

设置文本

文本节点.nodeValue=文本;

案例:点击小图看大图

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<meta charset="gb2312" /> 
<style type="text/css"> 
body{ 
background-color:pink; 
} 
#div{ 
/*border:1px solid green;*/ 
margin:40px auto; 
width:900px; 
} 
#ul li{ 
float:left; 
margin-right:10px; 
list-style-type:none; 
} 
p{ 
background-color:silver; 
width:50%; 
margin:0 auto; 
top:10px; 
text-align:center; 
} 
#divShow{ 
/*border:1px solid red;*/ 
width:640px; 
height:400px; 
margin:10px auto; 
clear:both; 
} 
</style> 
</head> 
<body> 
<div id="div"> 
<ul id="ul"> 
<li> 
<a href="imgs/0.jpg"> 
<img src="imgs_small/0.jpg" title="图片111"></img> 
</a> 
</li> 
<li> 
<a href="imgs/1.jpg"> 
<img src="imgs_small/1.jpg" title="图片222"></img> 
</a> 
</li> 
<li> 
<a href="imgs/2.jpg"> 
<img src="imgs_small/2.jpg" title="图片333"></img> 
</a> 
</li> 
<li> 
<a href="imgs/6.jpg"> 
<img src="imgs_small/6.jpg" title="图片444"></img> 
</a> 
</li> 
<li> 
<a href="imgs/4.jpg"> 
<img src="imgs_small/4.jpg" title="图片555"></img> 
</a> 
</li> 
</ul> 
</div> 
</body> 
</html> 
<script type="text/javascript"> 
//创建一个div节点 
var divShow = document.createElement("div"); 
//设置div的id属性 
divShow.setAttribute("id","divShow"); 
//创建一个img节点 
var img = document.createElement("img"); 
//设置img的id属性 
img.setAttribute("id","img"); 
//设置img的src属性 
img.setAttribute("src","imgs/face.jpg"); 
//将img节点添加到div下 
divShow.appendChild(img); 
//创建文本说明标签p 
var p = document.createElement("p"); 
p.setAttribute("id","p"); 
p.appendChild(document.createTextNode("说明")); //得到HTML中的body节点 
var body = document.getElementsByTagName("body")[0]; 
//将div添加到body节点下 
body.appendChild(divShow); 
body.appendChild(p);//把p添加到body下 

//为元素添加单击事件 
//节点对象.事件名 = new function(){}; 
//得到所有的<a>标签 
var alist = document.getElementById("div").getElementsByTagName("a"); 
for(var i = 0;i < alist.length; i++){ 
//当鼠标点击时切换图片 
alist[i].onclick = function(){ 
//this就表示当前被点击的节点 
//点谁获得谁的href和title的值 
var href = this.getAttribute("href"); 
var img = this.getElementsByTagName("img")[0]; 
var title = img.getAttribute("title"); 
//修改img标签的src属性 
var img = document.getElementById("img"); 
img.setAttribute("src",href); 
//修改p标签的文本 
var p = document.getElementById("p"); 
p.firstChild.nodeValue=title; 
//取消<a>标签的跳转 
return false; 
} 
//当鼠标称上去的时候切换图片 
alist[i].onmousemove = function(){ 
//this就表示当前被点击的节点 
//点谁获得谁的href和title的值 
var href = this.getAttribute("href"); 
var img = this.getElementsByTagName("img")[0]; 
var title = img.getAttribute("title"); 
//修改img标签的src属性 
var img = document.getElementById("img"); 
img.setAttribute("src",href); 
//修改p标签的文本 
var p = document.getElementById("p"); 
p.firstChild.nodeValue=title; 
//取消<a>标签的跳转 
return false; 
} 
} 
</script>
Javascript 相关文章推荐
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
Jun 28 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
Jan 15 Javascript
Jquery实现的角色左右选择特效
May 21 Javascript
jquery单行文字向上滚动效果的实现代码
Sep 05 Javascript
js实现支持手机滑动切换的轮播图片效果实例
Apr 29 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
基于jquery实现图片放大功能
May 07 Javascript
基于JS模仿windows文件按名称排序效果
Jun 29 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
JavaScript分步实现一个出生日期的正则表达式
Mar 22 Javascript
详解Vue的ref特性的使用
Jan 24 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
May 06 Javascript
javascript:void(0)的作用示例介绍
Oct 28 #Javascript
jsonp原理及使用
Oct 28 #Javascript
JS实现一键回顶功能示例代码
Oct 28 #Javascript
简单的js表单验证函数
Oct 28 #Javascript
自己写的Javascript计算时间差函数
Oct 28 #Javascript
Textarea根据内容自适应高度
Oct 28 #Javascript
将json当数据库一样操作的javascript lib
Oct 28 #Javascript
You might like
用PHP实现将GB编码转换为UTF8
2006/11/25 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
解密Python中的描述符(descriptor)
2015/06/03 Python
python中logging包的使用总结
2018/02/28 Python
pandas中去除指定字符的实例
2018/05/18 Python
Python之用户输入的实例
2018/06/22 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
如何利用python进行时间序列分析
2020/08/04 Python
Django中ORM的基本使用教程
2020/12/22 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
环境科学毕业生自荐信
2013/11/21 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
大学生暑期实践报告
2015/07/13 职场文书
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS