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 相关文章推荐
jquery 打开窗口返回值实现代码
Mar 04 Javascript
IE6已终止操作问题的2种情况及解决
Apr 23 Javascript
jQuery操作元素css样式的三种方法
Jun 04 Javascript
jQuery实现转动随机数抽奖效果的方法
May 21 Javascript
Javascript中replace()小结
Sep 30 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
Apr 30 Javascript
jQuery Dialog对话框事件用法实例分析
May 10 Javascript
jQuery实现的表格展开伸缩效果实例
Sep 07 Javascript
javascript实现倒计时效果
Feb 17 Javascript
微信小程序实现选择地址省市区三级联动
Jun 21 Javascript
js实现页面导航层级指示效果
Aug 25 Javascript
vue使用echarts画组织结构图
Feb 06 Vue.js
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
php Ajax乱码
2008/04/09 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
举例详解Python中的split()函数的使用方法
2015/04/07 Python
python对象与json相互转换的方法
2019/05/07 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
Python解析多帧dicom数据详解
2020/01/13 Python
学习Python列表的基础知识汇总
2020/03/10 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
Python项目跨域问题解决方案
2020/06/22 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
附答案的Java面试题
2012/11/19 面试题
LINUX下线程,GDI类的解释
2012/04/17 面试题
高中军训广播稿
2014/01/14 职场文书
公证委托书大全
2014/04/04 职场文书
死亡证明书样本说明
2014/10/18 职场文书
2014年团支部工作总结
2014/11/17 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书