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 js 获取时间差、时间格式具体代码
Jun 05 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
Nov 01 Javascript
jquery获取复选框被选中的值
Mar 22 Javascript
JQuery对表单元素的基本操作使用总结
Jul 18 Javascript
js实现的牛顿摆效果
Mar 31 Javascript
基于Javascript实现倒计时功能
Feb 22 Javascript
JavaScript日期对象(Date)基本用法示例
Jan 18 Javascript
详解微信小程序设置底部导航栏目方法
Jun 29 Javascript
JS实现浏览上传文件的代码
Aug 23 Javascript
对vue事件的延迟执行实例讲解
Aug 28 Javascript
javascript实现搜索筛选功能实例代码
Nov 12 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 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的博客ping服务代码
2012/02/04 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
php源码的安装方法和实例
2019/09/26 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
JavaScript提升机制Hoisting详解
2019/10/23 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
利用Psyco提升Python运行速度
2014/12/24 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
深入了解python中元类的相关知识
2019/08/29 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
过滤器的用法
2013/10/08 面试题
医学院学生求职简历的自我评价
2013/10/24 职场文书
企业贷款委托书格式
2014/09/12 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
Python - 10行代码集2000张美女图
2021/05/23 Python
MySQL日期时间函数知识汇总
2022/03/17 MySQL