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 相关文章推荐
鼠标右击事件代码(asp.net后台)
Jan 27 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
Javascript基础教程之数据类型转换
Jan 18 Javascript
AngularJS模块管理问题的非常规处理方法
Apr 29 Javascript
很棒的vue弹窗组件
May 24 Javascript
通俗解释JavaScript正则表达式快速记忆
Aug 23 Javascript
javascript 产生随机数的几种方法总结
Sep 26 Javascript
基于JavaScript实现五子棋游戏
Aug 26 Javascript
细说Vue组件的服务器端渲染的过程
May 30 Javascript
微信小程序与公众号卡券/会员打通的问题
Jul 25 Javascript
Vue前端判断数据对象是否为空的实例
Sep 02 Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 01 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开发环境配置记录
2011/01/14 PHP
PHP 第二节 数据类型之数组
2012/04/28 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
简单实用jquery版三级联动select示例
2013/07/04 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
Python守护进程(daemon)代码实例
2015/03/06 Python
python实现中文输出的两种方法
2015/05/09 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
python归并排序算法过程实例讲解
2020/11/04 Python
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
SQL Server面试题
2013/04/04 面试题
非功能性需求都包括哪些方面
2013/10/29 面试题
群众路线教育实践活动心得体会
2014/03/07 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
计算机毕业生求职信
2014/06/10 职场文书
公司捐书倡议书
2015/04/27 职场文书
国庆节新闻稿
2015/07/17 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL