基于javascript实现样式清新图片轮播特效


Posted in Javascript onMarch 30, 2016

本文实例为大家分享了javascript实现图片轮播特效,供大家参考,具体内容如下

一、实现效果

基于javascript实现样式清新图片轮播特效

如上图:

1、图片自动依次轮换,每轮换到一张图片,下面对应的小图标出现红色边框,并显示对应的图片名称

2、鼠标放到大图片上面的时,图片停止轮换,一直显示当前图片;鼠标移开后图片继续轮换

3、鼠标移到小图标上时,大图片区域会显示对应的大图;鼠标移开则从当前图片开始继续轮换

二、代码

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>带小图标的JS图片轮换</title>
 <style type="text/css">
  *{
   margin: 0px;
   padding: 0px;
  }
  #content{
   width: 700px;
   height: 538px;
   margin: 0px auto; /*使所有内容居中*/
   border: solid #F0F0F0;
  }

  /*定义下面小图标处样式*/
  #nav1 table{
   width: 100%;
   height: 35px;
   margin-top: -4px;
  }
  #nav1 td{
   width: 35px;
   height: 35px;
   text-align: center; /*文字居中*/
   color: #ffffff;
  }
  #text{

  }
  #_text{
   width: 100%;
   height: 100%;
   background-color: #F0F0F0;
   border: none;
   text-align: center;
   font-size: 18px;
   color: #000000;
   font-weight: bold;
  }
 </style>
</head>
<body onload="changeImg()">
 <div id="content">
  <div id="images">
   <img id="_photoes" src="../images/textPhoto/1.jpg" height="500px" width="700px" onmouseover="over1()" onmouseout="out1()">
  </div>
  <div id="nav1">
   <table border="0">
    <tr>
     <td id="text" bgcolor="#F0F0F0" colspan="15"><input type="text" id="_text" readonly></td>
     <td id="img1" class="sImg" bgcolor="#db7093" onmouseover="over2(1)" onmouseout="out2(1)">1</td>
     <td id="img2" class="sImg" bgcolor="#da70d6" onmouseover="over2(2)" onmouseout="out2(2)">2</td>
     <td id="img3" class="sImg" bgcolor="#9acd32" onmouseover="over2(3)" onmouseout="out2(3)">3</td>
     <td id="img4" class="sImg" bgcolor="#adff2f" onmouseover="over2(4)" onmouseout="out2(4)">4</td>
     <td id="img5" class="sImg" bgcolor="#00bfff" onmouseover="over2(5)" onmouseout="out2(5)">5</td>
    </tr>
   </table>
  </div>
 </div>

 <script type="text/javascript">
  //将轮换的大图片放入数组中
  var arr = new Array();
  arr[0] = "../images/textPhoto/1.jpg";
  arr[1] = "../images/textPhoto/2.jpg";
  arr[2] = "../images/textPhoto/3.jpg";
  arr[3] = "../images/textPhoto/4.jpg";
  arr[4] = "../images/textPhoto/5.jpg";

  //将input区域变换的文字放在数组里
  var text = new Array();
  text[0] = "焦点图1";
  text[1] = "焦点图2";
  text[2] = "焦点图3";
  text[3] = "焦点图4";
  text[4] = "焦点图5";

  var smallImg = document.getElementsByClassName("sImg"); //将页面上所有小图片存放在一个数组

  var num = 0;
  function changeImg() {
   document.getElementById("_photoes").src = arr[num];
   document.getElementById("_text").value = text[num];
   //当前小图标增加边框样式
   for(var i=0;i<arr.length;i++) {
    if(i==num) smallImg[num].style.border = "red solid"; //大图标对应的小图标增加边框样式
    else smallImg[i].style.border = "none";
   }
   if (num == arr.length - 1) num = 0; //如果显示的是最后一张图片,则图片序号变为第一张的序号
   else num += 1; //图片序号加一
  }

  var setID = setInterval("changeImg()",1000); //这样写任然会不断调用changeImg()函数

  /*当鼠标滑到大图标上时*/
  function over1() {
   clearInterval(setID); //图片停止轮换
//   smallImg[n-1].style.border = "red solid";
  }

  /*当鼠标离开大图标时*/
  function out1() {
   setID = setInterval("changeImg()",1000);  //图片继续轮换
//   smallImg[n-1].style.border = "none"; //大图标对应的小图标边框样式取消
  }

  /*当鼠标滑到小图标上时*/
  function over2(n) {
   document.getElementById("_photoes").src = arr[n-1]; //只要鼠标滑到小图标上,大图区域就显示对应的图片
   document.getElementById("_text").value = text[n-1];
   clearInterval(setID); //图片停止轮换
   //当前小图标增加边框样式
   for(var i=0;i<arr.length;i++) {
    if(i==n-1) smallImg[n-1].style.border = "red solid";
    else smallImg[i].style.border = "none";
   }
  }

  /*当鼠标离开小图标时*/
  function out2(n) {
   if(n!=arr.length)
    num = n; //从当前图片开始轮换
   else num = 0;
   setID = setInterval("changeImg()",1000);  //图片继续轮换
//   smallImg[n-1].style.border = "none"; //小图标边框样式取消
  }
 </script>
</body>
</html>

三、多张图片轮换调试笔记

js源代码:

//实现几张图片的轮换
var num = 0;  //显示的图片序号,刚开始时是第一张图片
function changeImg1() {
  var arr = new Array();
  arr[0]="../images/hao123/7.jpg";
  arr[1]="../images/hao123/8.jpg";
  arr[2]="../images/hao123/9.jpg";
  var photo = document.getElementById("topPhoto");
  if (num == arr.length - 1) num = 0;  //如果显示的是最后一张图片,则图片序号变为第一张的序号
  else num += 1;  //图片序号加一
  photo.src = arr[num];
}
setInterval("changeImg1()",5000);  //每隔5000毫秒调用一次changImg1()函数

HTML代码:

<img src="../images/hao123/7.jpg" id="topPhoto">

在使用的时候最好定义一下图片的样式,把图片的长宽都统一,这样图片动态显示的效果会更好一些。

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
简明json介绍
Sep 28 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
JS实现切换标签页效果实例代码
Nov 01 Javascript
JavaScript动态添加事件之事件委托
Jul 12 Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 Javascript
ES6新特征数字、数组、字符串
Oct 01 Javascript
微信小程序 动态传参实例详解
Apr 27 Javascript
深入剖析Express cookie-parser中间件实现示例
Feb 01 Javascript
JavaScript设计模式之调停者模式实例详解
Feb 03 Javascript
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
Apr 24 Javascript
JavaScript监听键盘事件代码实现
Jun 03 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 #Javascript
Jquery轮播效果实现过程解析
Mar 30 #Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
Mar 30 #Javascript
JavaScript 经典实例日常收集整理(常用经典)
Mar 30 #Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
Mar 30 #Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 #Javascript
React.js入门学习第一篇
Mar 30 #Javascript
You might like
用mysql内存表来代替php session的类
2009/02/01 PHP
PHP 危险函数解释 分析
2009/04/22 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
Python获取linux主机ip的简单实现方法
2016/04/18 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
python-opencv颜色提取分割方法
2018/12/08 Python
Python-接口开发入门解析
2019/08/01 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
python 监控logcat关键字功能
2020/09/04 Python
python 实现图片批量压缩的示例
2020/12/18 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
小学感恩教育活动总结
2014/07/07 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
中秋节慰问信
2015/02/15 职场文书
教导主任个人总结
2015/03/03 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
python实现自定义日志的具体方法
2021/05/28 Python