js学习之dom编程应用图片库

2024-06-16 14:32

本文主要是介绍js学习之dom编程应用图片库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        最近在看《JavaScript Dom编程艺术》这本书,入门经典书,首先推荐之~

        进入正题,首先。何为DOM?

        D——document,O——object,M——Model or Map.(具体阐述可参考上书第三章)。

        DOM编程就是把整个表示为一棵树,所以我们一般使用的方法有:

        document.getElementById(返回一个对象)

        document.getElementsByTagName(返回一个对象数组)

        document.getElementsByClassName(返回一个对象数组,html5中的dom才添加,所以使用的时候最好是加一个函数判断一下浏览器是否能够支持,再做出反应)

       element.getAttribute获得属性

       element.setAttribute("属性名",属性值)设置属性,但是不会改变文档静态内容,加载之后会刷新。

       element.childNodes子节点

       element.nodeType元素节点为1,属性节点为2,文本节点为3

       element.nodeValue可以用于获取,也可以直接设置(element.nodeValue=text;)

       element.firstChild(lastChild)第一个孩子节点和最后一个孩子节点

 

       OK,了解完这些之后,就像开始买好了食材了一样,可以小试一把了~

       首先,写好html文档,把整个网页内容和架构搭好

       然后,加入css调整一下,最后就是js文档啦。

       

function showPic(pic){	//获得placeholder,然后将被点击的图片的链接给placeholdervar source=pic.getAttribute("href");var placeholder=document.getElementById("placeholder");placeholder.setAttribute("src",source);//同样的方法将图片下方的文字改变。因为文字只是其中的文本节点,不是属性,所以不能完全用相同方法。var text=pic.getAttribute("title");var description=document.getElementById("description");description.firstChild.nodeValue=text;
}

 

 

这是最后的效果,点击上面的小图,下面会对应显示,文字也会随之变化。

       当然如果你考虑地更多,可能用户会不用禁止了js或者是浏览器有什么问题。这就是平稳退化的问题。为了安全起见,不老是报错,我们最好还是进行对象检测。改进之后的js代码是这样的

// JavaScript Document
window.οnlοad=prepare;
function prepare(){if(!document.getElementsByTagName)return false;if(!document.getElementById)return false;if(!document.getElementById("imagegallery"))return false;var gallery=document.getElementById("imagegallery");var myLink=gallery.getElementsByTagName("a");for(var i=0;i<myLink.length;i++){myLink[i].οnclick=function(){return showPic(this)?false:true;}}
}
function showPic(pic){	if(!document.getElementById("placeholder"))return false;var source=pic.getAttribute("href");var placeholder=document.getElementById("placeholder");placeholder.setAttribute("src",source);if(document.getElementById("description")){var text=pic.getAttribute("title");var description=document.getElementById("description");description.firstChild.nodeValue=text;}return true;}

       附件是做这个的所有文件~~

       补充一些以上文件没有用到的常见的动态改变标签的方法:

       createElement创建对象

       createTextNode创建文本节点

       appendChild添加子节点,让创建节点加入文本的树里

       insertBefore将节点添加到某个节点之后

       需要注意的是没有insertAfter的方法,可以自己写一个

funciton(newElement,targetElement){//先获取父节点var parent=targetElement.parentNode;if(parent.lastChild==targetElement){parent.appendChild(newElement)}else{parent.insertBefore(newElement,targetElement.nextSibling);}
}

 

 

这篇关于js学习之dom编程应用图片库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066698

相关文章

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.