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 相关文章推荐
js直接编辑当前cookie的脚本
Sep 14 Javascript
javascript实现回车键提交表单方法总结
Jan 10 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
Nov 30 Javascript
全面理解JavaScript中的闭包
May 12 Javascript
详谈JS中实现种子随机数及作用
Jul 19 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
Mar 29 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
Dec 20 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
Mar 29 Javascript
Vue中Quill富文本编辑器的使用教程
Sep 21 Javascript
JavaScript数组去重的几种方法
Apr 07 Javascript
详解React的回调渲染模式
Sep 10 Javascript
vue下载二进制流图片操作
Oct 26 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 高手之路(一)
2006/10/09 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
PHP 第二节 数据类型之转换
2012/04/28 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
JScript中的&quot;this&quot;关键字使用方式补充材料
2007/03/08 Javascript
在html页面中包含共享页面的方法
2008/10/24 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
Python print不能立即打印的解决方式
2020/02/19 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
后勤副校长自我鉴定
2013/10/13 职场文书
法学个人求职信范文
2014/01/27 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫