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 相关文章推荐
用js实现的一个Flash滚动轮换显示图片代码生成器
Mar 14 Javascript
InnerHtml和InnerText的区别分析
Mar 13 Javascript
Javascript 获取字符串字节数的多种方法
Jun 02 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
Aug 07 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
Apr 03 Javascript
触屏中的JavaScript事件分析
Feb 06 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
Jun 03 Javascript
jQuery实现图片轮播效果代码
Sep 27 Javascript
jQuery实现 RadioButton做必选校验功能
Jun 15 jQuery
解决vue中修改了数据但视图无法更新的情况
Aug 27 Javascript
react 国际化的实现代码示例
Sep 14 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
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
PHP crc32()函数讲解
2019/02/14 PHP
jquery中获取元素的几种方式小结
2011/07/05 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
jQuery实现的Div窗口震动特效
2014/06/09 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
vue 实现websocket发送消息并实时接收消息
2019/12/09 Javascript
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
python操作excel让工作自动化
2019/08/09 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
Python datetime模块使用方法小结
2020/06/18 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
求职信结尾怎么写
2014/05/26 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript