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 相关文章推荐
extjs 初始化checkboxgroup值的代码
Sep 21 Javascript
js加入收藏夹代码(兼容ie/ff/op)
May 16 Javascript
javascript实现倒计时(精确到秒)
Jun 26 Javascript
jQuery链式操作实例分析
Nov 16 Javascript
javascript高级编程之函数表达式 递归和闭包函数
Nov 29 Javascript
深入理解jQuery 事件处理
Jun 14 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
Jun 13 Javascript
浅谈webpack组织模块的原理
Mar 10 Javascript
js根据json数据中的某一个属性来给数据分组的方法
Oct 08 Javascript
JavaScript常用事件介绍
Jan 21 Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 Javascript
浅谈Webpack多页应用HMR卡住问题
Apr 24 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
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
Smarty模板语法详解
2019/07/20 PHP
accesskey 提交
2006/06/26 Javascript
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
javascript基本语法分析说明
2008/06/15 Javascript
限制文本框输入N个字符的js代码
2010/05/13 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
python装饰器decorator介绍
2014/11/21 Python
Python实例一个类背后发生了什么
2016/02/09 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
Python中创建二维数组
2018/10/17 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
python实现归并排序算法
2018/11/22 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
在C#中如何实现多态
2014/07/02 面试题
挑战杯创业计划书的写作指南
2014/01/07 职场文书
安全标兵事迹材料
2014/08/17 职场文书
学习党代会心得体会
2014/09/05 职场文书