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 相关文章推荐
Firefox中使用outerHTML的2种解决方法
Jun 07 Javascript
使用原生JS实现弹出层特效
Dec 22 Javascript
coffeescript使用的方式汇总
Aug 05 Javascript
js实现点击文本框显示日期选择器特效代码分享
May 21 Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 Javascript
解析Node.js基于模块和包的代码部署方式
Feb 16 Javascript
jquery表单插件Autotab使用方法详解
Jun 24 Javascript
用jQuery的AJax实现异步访问、异步加载
Nov 02 Javascript
jQuery插件扩展操作入门示例
Jan 16 Javascript
js实现表格筛选功能
Jan 18 Javascript
详解如何使用webpack打包Vue工程
May 27 Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
php 接口类与抽象类的实际作用
2009/11/26 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
JQuery datepicker 使用方法
2011/05/20 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
Python的面向对象编程方式学习笔记
2016/07/12 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
Python中如何导入类示例详解
2019/04/17 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
django框架ModelForm组件用法详解
2019/12/11 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
django form和field具体方法和属性说明
2020/07/09 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
英语专业毕业生自荐信
2013/10/28 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
政审证明范文
2015/06/19 职场文书
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
MySQL数据库查询之多表查询总结
2022/08/05 MySQL