js实现同一页面可多次调用的图片幻灯切换效果


Posted in Javascript onFebruary 28, 2015

本文实例讲述了js实现同一页面可多次调用的图片幻灯切换效果。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>js同一页面可多次调用的图片幻灯切换效果</title>

<meta http-equiv="content-type" content="text/html;charset=gb2312">

<!--把下面代码加到<head>与</head>之间-->

<script language="javascript">

//声明命名空间

var $o = new Object();

//基础方法

$o.base = {

 e:function(a,f){

  for(var i=0,j=a.length;i<j;i++){f.call(a[i],i);}

 }

}

$o. slide = function (id,arg){

 var arg = arg||{},

  t = document.getElementById(id),

  a = t.getElementsByTagName("a"),

  lis = [],

  cl = arg.color||'#f30',

  ctm = arg.time*1000||2000,

  w = t.clientWidth,

  h = t.clientHeight,

  b = ['<ul style="margin:0; padding:0; list-style:none; display:block; position:absolute; bottom:10px; right:10px;">'],

  index = 0,

  $ = null,

  $ = null;

  function change(i){

   if(!!$){clearTimeout($);}

   index = !isNaN(i)?i:index+1;

   if(index >= a.length){index = 0;}

   $o.base.e(lis,function(k){if(k == index){c(1,this);}else{c(0,this)}});

   var to = - index*h;

   if(a[0].offsetTop == to){

    return;

   }else{

    if(!!$){clearInterval($);}

    $ = setInterval(function(){

     var ot = a[0].offsetTop;

     v = Math[to<ot?'floor':'ceil']((to - ot)*0.2);

     if(ot == to){clearInterval($);$=null;st();}

     ot += v;

     a[0].style.marginTop = ot + "px";

    },30)

   };

  }

  function c(b,o){

   o.style.backgroundColor = !!b?cl:"#fff";

   o.style.color = !!b?"#fff":cl;

  }

  function st(){

   if(!!$)clearTimeout($);

   $ = setTimeout(function(){change()},ctm);

  }

  with(t.style){overflow = 'hidden';position = 'relative';}

  $o.base.e(a,function(n){

   this.style.display = "block";

   with(this.firstChild.style){borderWidth = '0';width = w + 'px';height = h + 'px';}

   b.push('<li style="width:20px; height:20px; line-height:20px; display:block; float:left; margin-left:5px; border:1px solid ' + cl + '; background-color:#fff; color:' + cl +'; font-size:14px; text-align:center; cursor:pointer;">' + (n+1) + '</li>'); 

  });

  b.push('</ul>');

  t.innerHTML += b.join("");

  lis = t.getElementsByTagName("li");

  $o.base.e(lis,function(n){

   if(n == index){c(1,this)}

   this.onmouseover = function(){

    if(n!=index)change(n);

   }

  });

  st();

}

</script>

</head>

<body>

<!--把下面代码加到<body>与</body>之间-->

<div id="aa" style="width:402px;height:228px;">

 <a href="javascript:alert('1')"><img src="/images/1.jpg"></a>

 <a href="javascript:alert('2')"><img src="/images/2.jpg"></a>

 <a href="javascript:alert('3')"><img src="/images/3.jpg"></a>

 <a href="javascript:alert('4')"><img src="/images/4.jpg"></a>

 <a href="javascript:alert('5')"><img src="/images/5.jpg"></a>

 <a href="javascript:alert('6')"><img src="/images/6.jpg"></a>

 <a href="javascript:alert('7')"><img src="/images/7.jpg"></a>

 <a href="javascript:alert('8')"><img src="/images/8.jpg"></a>

 <a href="javascript:alert('9')"><img src="/images/9.jpg"></a>

</div>

<script language="javascript">

new $o.slide("aa");

</script>

<br>

<div id="bb" style="width:402px;height:228px;">

 <a href="###"><img src="/images/1.jpg"></a>

 <a href="###"><img src="/images/2.jpg"></a>

 <a href="###"><img src="/images/3.jpg"></a>

 <a href="###"><img src="/images/4.jpg"></a>

 <a href="###"><img src="/images/5.jpg"></a>

</div>

<script language="javascript">

new $o.slide("bb",{color:'#000',time:0.2});

</script>

<br>

<div id="cc" style="width:402px;height:228px;">

 <a href="###"><img src="/images/1.jpg"></a>

 <a href="###"><img src="/images/2.jpg"></a>

 <a href="###"><img src="/images/3.jpg"></a>

 <a href="###"><img src="/images/4.jpg"></a>

 <a href="###"><img src="/images/5.jpg"></a>

</div>

<script language="javascript">

new $o.slide("cc",{color:'green'});

</script>

</body>

</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 对象链式操作测试代码
Apr 25 Javascript
jQuery 开发者应该注意的9个错误
May 03 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
JS 数字转换研究总结
Dec 26 Javascript
JS和函数式语言的三特性
Mar 05 Javascript
原生javascript实现DIV拖拽并计算重复面积
Jan 02 Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 Javascript
jquery实现可旋转可拖拽的文字效果代码
Jan 27 Javascript
js动态获取子复选项并设计全选及提交的实现方法
Jun 24 Javascript
bootstrap table 多选框分页保留示例代码
Mar 08 Javascript
Vuex之理解Getters的用法实例
Apr 19 Javascript
js 事件的传播机制(实例讲解)
Jul 20 Javascript
js获取当前日期前七天的方法
Feb 28 #Javascript
JQuery的ON()方法支持的所有事件罗列
Feb 28 #Javascript
使用命令对象代替switch语句的写法示例
Feb 28 #Javascript
Underscore.js常用方法总结
Feb 28 #Javascript
js实现文字跟随鼠标移动而移动的方法
Feb 28 #Javascript
jQuery实现tab标签自动切换的方法
Feb 28 #Javascript
js根据鼠标移动速度背景图片自动旋转的方法
Feb 28 #Javascript
You might like
下载文件的点击数回填
2006/10/09 PHP
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
2014年自我评价
2014/01/04 职场文书
12月小学生校园广播稿
2014/02/04 职场文书
毕业论文评语大全
2014/04/29 职场文书
安全教育月活动总结
2014/05/05 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python
golang特有程序结构入门教程
2021/06/02 Python
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis