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 相关文章推荐
angularjs 处理多个异步请求方法汇总
Jan 06 Javascript
jQuery选择器querySelector的使用指南
Jan 23 Javascript
纯js实现无限空间大小的本地存储
Jun 18 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
Jan 27 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
vue router学习之动态路由和嵌套路由详解
Sep 21 Javascript
AngularJs ng-change事件/指令的用法小结
Nov 01 Javascript
微信小程序开发问题之wx.previewImage
Dec 25 Javascript
详解用Webpack与Babel配置ES6开发环境
Mar 12 Javascript
javascript验证form表单数据的案例详解
Mar 25 Javascript
javascript中的数据类型检测方法详解
Aug 07 Javascript
JQuery复选框全选效果如何实现
May 08 jQuery
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二分法在IP地址查询中的应用
2008/08/12 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
php购物车实现方法
2015/01/03 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
jquery tab标签页的制作
2010/05/10 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
Python实现求数列和的方法示例
2018/01/12 Python
Python内存映射文件读写方式
2020/04/24 Python
应用服务器有那些
2012/01/19 面试题
员工拾金不昧表扬信
2014/01/09 职场文书
《雷雨》教学反思
2014/02/20 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
工程索赔意向书
2014/08/30 职场文书
秦兵马俑导游词
2015/02/02 职场文书
前台接待员岗位职责
2015/04/15 职场文书
学校教代会开幕词
2016/03/04 职场文书
党员公开承诺书2016
2016/03/24 职场文书
五年级作文之学校的四季
2019/12/05 职场文书