js图片切换具体实现代码


Posted in Javascript onOctober 13, 2016

本文实例为大家分享了js实现图片切换的方法,供大家参考,具体内容如下

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
 <title></title>
 <style>
 *{
  margin:0;
  padding:0;
 }
 .all{
  width:600px;
  height:350px;
  position:relative;
  overflow:hidden;
  margin:100px auto;
 }
 .all ul{
  z-index:1;
  position:relative;
 }
 .all ul li{
  position:absolute;
  top:0;
  left:0;
 }
 .all ol{
  position:absolute;
  right:10px;
  bottom:10px;
  z-index:2;
 }
 .all ol li{
  width:20px;
  height:20px;
  border:1px solid #fff;
  background-color:#333;
  float:left;
  overflow:hidden;
  margin-right:10px;
  text-align:center;
  line-height:20px;
  color:#fff;
  margin-top:10px;
  font-weight:bold;
 }
 .all ol .current{
  width:30px;
  height:30px;
  border:1px solid #f60;
  color:#f60;
  line-height:30px;
  margin-top:0;
  cursor:pointer;
 }
 </style>
 
 <script>
 //通过id值获得元素的函数
 function $(id){
  return document.getElementById(id);
 }
 
 //初始化函数
 function initial(){
  olLi=document.getElementsByTagName('ol')[0].getElementsByTagName('li');//获取ol下的li
  ol=$('tab');//获取ol元素
  theImg=$('theImg');
  //五张图片的地址
  addressPic=['01.jpg','02.jpg','03.jpg','04.jpg','05.jpg'];
  
  //遍历ol下的li
  for(var i=0;i<olLi.length;i++){
   //依次给每个li绑定mouseover事件,该事件执行切换图片的函数
   olLi[i].addEventListener('mouseover',changePicture,false);
   olLi[i].index=i;//设置ol li的index序列号   
  }
 }
 

 
 //切换图片
 function changePicture(e){
  e.target.className="current";//将选中的ol下的li的class属性设置为current,e.target代表选中的li
  
  //清除ol里的空白节点
  cleanWhitespace(ol);
  
  //删除除当前选中的li外其他li的class属性值
  nextNode=e.target.nextSibling;//当前节点的下一个节点
  lastNode=e.target.previousSibling;//当前节点的前一个节点
  while(nextNode){//将当前节点后所有的兄弟节点的class属性清除
   nextNode.setAttribute('class','');
   nextNode=nextNode.nextSibling;
  }
  while(lastNode){//将当前节点前面所有的兄弟节点的class属性清除
   lastNode.className='';
   lastNode=lastNode.previousSibling;
  }
  
  //实现切换图片的功能 
  theImg.src=addressPic[this.index];
 }
 
 
 //清除ol下的空白节点
 function cleanWhitespace(oElement)
 {
  for(var i=0;i<oElement.childNodes.length;i++){
   var node=oElement.childNodes[i];
   if(node.nodeType==3 && !/\S/.test(node.nodeValue)){ 
     node.parentNode.removeChild(node)
   }
 }
}

 //给窗体绑定load事件,执行初始化函数initial()
 window.addEventListener('load',initial,false);
 </script>
 </head>

 <body>
 <div class="all">
 <ul>
  <li><img id="theImg" src="01.jpg" width="600px" height="350px"/></li>
 </ul>
 <ol id="tab">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li class="current">5</li>
 </ol>
 </div>
 </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 面向对象全新理练之继承与多态
Dec 03 Javascript
Javascript 面向对象 命名空间
May 13 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
Nov 07 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
Dec 25 Javascript
原生JavaScript实现Ajax的方法
Apr 07 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
Dec 22 Javascript
深入理解Javascript中的观察者模式
Feb 20 Javascript
详解为生产环境编译Angular2应用的方法
Dec 10 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
Sep 02 Javascript
react MPA 多页配置详解
Oct 18 Javascript
Vue实现背景更换颜色操作
Jul 17 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
Aug 31 Javascript
微信小程序 rpx 尺寸单位详细介绍
Oct 13 #Javascript
jquery实现图片切换代码
Oct 13 #Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
Oct 13 #Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
Oct 13 #Javascript
Javascript中this绑定的3种方法与比较
Oct 13 #Javascript
手机端实现Bootstrap简单图片轮播效果
Oct 13 #Javascript
jquery  实现轮播图详解及实例代码
Oct 12 #Javascript
You might like
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
python映射列表实例分析
2015/01/26 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
Python获取央视节目单的实现代码
2015/07/25 Python
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
Python循环结构的应用场景详解
2019/07/11 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
abstract是什么意思
2012/02/12 面试题
个人自荐信
2013/12/05 职场文书
出国考察邀请函
2014/01/21 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
文明寝室标语
2014/06/13 职场文书
故宫导游词
2015/01/31 职场文书
给病人的慰问信
2015/03/23 职场文书
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技