DOM学习之图片库切换效果
addloadevent(prepareplaceholder())
addloadevent(prepareGallery())
//页面加载完时执行函数
function addloadevent(func) { //参数放入你界面加载完要执行的函数
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
oldonload();
func();
}
}
// 向后插入元素方法
function insertAfter(ent,hou) { //第一个参数你要出入的节点,第二参数你要插入谁的后面
var parer = hou.parentNode; //获取他的父级判断所选的元素是否是最后一个
if (parer.lastChild == hou) {
parer.appendChild(ent); //如果是最后一个直接执行appendChild插入到后面
} else {
parer.insertBefore(ent, hou.nextSibling); //如果不是则插入到父级的同级的前面 }
}
//插入img 和 p节点设置属性
function prepareplaceholder() {
if (!document.createElement) return false;
if (!document.createTextNode) return false;
if (!document.getElementById) return false;
if (!document.getElementById("imagegallery")) return false;
//创建一个img标签设置属性
var placeholder = document.createElement("img");
placeholder.setAttribute("id", "placeholder");
placeholder.setAttribute("src", "img/200u0l000000d8n8xB0E3_R_550_412.jpg");
placeholder.setAttribute("alt", "第一张图片");
//创建一个p标签给他设置属性
var description = document.createElement("p");
description.setAttribute("id", "description");
var desctext = document.createTextNode("第一张图片");
description.appendChild(desctext);
// 将创建好的标签插入HTML文档中
var gallery = document.getElementById("imagegallery");
insertAfter(placeholder, gallery);
insertAfter(description, placeholder);
}
//给a标签绑定点击事件
function prepareGallery() {
if (!document.getElementsByTagName) return false;
if (!document.getElementById) return false;
if (!document.getElementById("imagegallery")) return false; var galley = document.getElementById("imagegallery");
var links = galley.getElementsByTagName("a"); for (var i = 0; i < links.length; i++) {
links[i].onclick = function() {
return showPic(this);
}
links[i].onkeypress = links[i].onclick;
}
}
//点击后执行的函数
function showPic(whichpic) {
if (!document.getElementById("placeholder")) return true; var source = whichpic.getAttribute("href"); var placeholder = document.getElementById("placeholder");
placeholder.setAttribute("src",source); if (!document.getElementById("placeholder")) return false; if (whichpic.getAttribute("title")) {
var text = whichpic.getAttribute("title");
} else {
text = "";
}
var description = document.getElementById("description");
//判断P标签中的节点类型 3为文本类型#text 设置文本
if (description.firstChild.nodeType == 3) {
description.firstChild.nodeValue = text;
}
return false;
}
HTML代码
<!DOCTYPE html>
<html> <head>
<title>图片库效果</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head> <body>
<h1>点击图片效果</h1>
<ul id="imagegallery">
<li>
<a href="img/200u0l000000d8n8xB0E3_R_550_412.jpg" title="第一张图">
<img src="img/200u0l000000d8n8xB0E3_R_550_412.jpg" alt="fffd">
</a>
</li>
<li>
<a href="img/20080o000000f95k889B2_R_550_412.jpg" title="第二张图">
<img src="img/20080o000000f95k889B2_R_550_412.jpg" alt="bbf">
</a>
</li>
<li>
<a href="img/200h0d0000006tsrr8195_R_550_412.jpg" title="第三张图">
<img src="img/200h0d0000006tsrr8195_R_550_412.jpg" alt="fff ">
</a>
</li>
<li>
<a href="img/4b9185dbdb71431ab128af73baf22ce1_R_550_412.jpg" title="第四张图">
<img src="img/4b9185dbdb71431ab128af73baf22ce1_R_550_412.jpg" alt="fff ">
</a>
</li>
</ul>
<script type="text/javascript" src="js/script.js"></script>
</body> </html>
CSS代码
h1{
width: 290px;
margin: 0 auto;
height: 60px;
line-height: 60px;
text-align: center;
color: #13af13;
}
#imagegallery{
width: 290px;
height: 50px;
margin: 0 auto;
padding: 5px 0 0 0;
background-color: #e2e2e2;
}
#imagegallery li{
float: left;
width: 60px;
list-style: none;
margin-left: 10px;
}
#imagegallery img ,#imagegallery a{
text-decoration: none;
font-style: normal;
display: block;
width: 100%;
}
#placeholder{
display: block;
border: 4px solid #13af13;
width: 282px;
margin: 0 auto;
}
p{
text-align: center;
}
DOM学习之图片库切换效果的更多相关文章
- iOS 视图控制器转场动画/页面切换效果/跳转动画 学习
一 学习 在 UINavigationController 中 push 和 pop 的转场效果 (基于iOS7 以上的转场方式) 经过学习了解到,重点分三块: (1)pushAnimation: ...
- 【转】 Pro Android学习笔记(四二):Fragment(7):切换效果
目录(?)[-] 利用setTransition 利用setCustomAnimations 通过ObjectAnimator自定义动态效果 程序代码的编写 利用fragment transactio ...
- weui 多网页切换效果分析
weui的文档写的不怎么详尽,简单的来讲WeUI 为微信 Web 服务量身设计的h5框架. WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户 ...
- 极富创意的3D文件夹切换效果
今天分享的是一个极富创意的文件夹切换效果.这个案例使用CSS 3动画实现了一个3D的平行六面体旋转效果.点击顶部的3个按钮可以旋转并切换.另外,每个六面体本身是一个文件夹,点击后可以展开查看里面的详情 ...
- 巧用ViewPager 打造不一样的广告轮播切换效果
一.概述 如果大家关注了我的微信公众号的话,一定知道我在5月6号的时候推送了一篇文章,文章名为Android超高仿QQ附近的人搜索展示(一),通过该文可以利用ViewPager实现单页显示多个Item ...
- jquery简单的图片切换效果,支持pc端、移动端的banner图片切换开发
详细内容请点击 无意中看见了两年前写的一个图片切换,那会儿刚刚学习网页制作,可以说是我的第一个处女座的jquery图片切换效果.无聊之余对它的宽度稍稍做了一下修改,变成了支持pc端.手机端全屏的ban ...
- Jquery实现图片切换效果(IE,FF,Goole)都可以正常运行
这里先对标签的样式进行设置(我这里只用了3张图片,可以根据自己的情况,添加) <style type="text/css"> /*展示图片切换的div样式*/ #Sho ...
- Android 自定义 ViewPager 打造千变万化的图片切换效果
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38026503 记得第一次见到ViewPager这个控件,瞬间爱不释手,做东西的主 ...
- 用html+css+js实现选项卡切换效果
文章转载自:http://tongling.github.io/JSCards/ 用html+css+js实现选项卡切换效果 使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材 ...
随机推荐
- MVC.Net:MVC.Net与WebAPI的IOC实现
我们通过Ninject(http://www.ninject.org/)项目来帮助我们实现MVC.Net与WebAPI项目的IOC实现. 首先我们来看MVC.Net的IOC实现. 1. 通过NuGet ...
- 【Git使用具体解释】Egit使用过程中遇到的问题及解决的方法
1. Git错误non-fast-forward后的冲突解决 问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不同意你直接把你的代码覆盖上去.于是你有2 ...
- iOS中的多线程NSThread/GCD/NSOperation & NSOperationQueue
iOS多线程有四套多线程方案: Pthreads NSThread GCD NSOperation & NSOperationQueue 接下来我来一个一个介绍他们 Pthreads 在类Un ...
- HDU 3718 Similarity(KM最大匹配)
HDU 3718 Similarity 题目链接 题意:给定一个标准答案字符串,然后以下每一行给一个串.要求把字符一种相应一种,要求匹配尽量多 思路:显然的KM最大匹配问题,位置相应的字符连边权值+1 ...
- 使用U-Boot的TFTP(远程/网络内核)
前提条件 假设您的主机PC运行的是Ubuntu 14.04.1 LTS或更高版本,并且与您的开发平台在同一个本地网络上;为了简单起见,我们假设网络上也有DHCP服务器.如果使用Juno,请确保使用的是 ...
- [POJ 2536] Gopher ||
[题目链接] http://poj.org/problem?id=2536 [算法] 匈牙利算法解二分图最大匹配 [代码] #include <algorithm> #include &l ...
- bzoj 3743 [ Coci 2015 ] Kamp —— 树形DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3743 一开始想到了树形DP,处理一下子树中的最小值,向上的最小值,以及子树中的最长路和向上的 ...
- A Round Peg in a Ground Hole(圆与凸包)
http://poj.org/problem?id=1584 题意:判断所给的点能不能形成凸包,并判断所给的圆是否在凸包内. 改了好几天的一个题,今天才发现是输入顺序弄错了,办过的最脑残的事情..sa ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'admin' for key 'UK_dgxl7aijrr4hq8314exhw407s'
严重: Servlet.service() for servlet [spring-mvc] in context with path [/learn] threw exception [Reques ...
- iOS多线程——GCD篇
什么是GCD GCD是苹果对多线程编程做的一套新的抽象基于C语言层的API,结合Block简化了多线程的操作,使得我们对线程操作能够更加的安全高效. 在GCD出现之前Cocoa框架提供了NSObjec ...