[JS]图片自动切换效果(学习笔记)

上次在下载的网页中看到

javascript实现图片自动切换效果:

<style text="text/css">

/*图片滚动栏*/
.container, .container * {
    margin: 0;
    padding: 0;
}
.container {
    width: 1005px;
    height: 395px;
    float: right;
    overflow: hidden;
    position: relative;
    right: 0px;
}
.container ul {
    position: absolute;
}
.slider {
    position: absolute;
    top: 0;
    left: 0;
}
.slider li {
    list-style: none;
    display: inline;
}
.slider img {
    width: 1005px;
    height: 395px;
    display: block;
}
.num {
    position: absolute;
    right: 5px;
    bottom: 5px;
}
.num li {
    float: left;
    color: #d71437;
    text-align: center;
    line-height: 16px;
    width: 16px;
    height: 16px;
    font-family: Arial;
    font-size: 12px;
    cursor: pointer;
    overflow: hidden;
    margin: 3px 1px;
    border: 1px solid #d71437;
    background-color: #fff;
}
.num li.on {
    color: #fff;
    line-height: 21px;
    width: 21px;
    height: 21px;
    font-size: 16px;
    margin: 0 1px;
    border: 0;
    background-color: #d71437;
    font-weight: bold;
}

</style>

<div class="container" id="idTransformView" style="float: right; overflow: hidden; position: relative;">
  <ul style="position: absolute; left: 0px; top: 0px;" class="slider" id="idSlider">
        <li><a href="#" target="_blank"><img src="images/20141011jbkggb.jpg"></a></li>
        <li><a href="#" target="_blank"><img src="images/20141011vmtsru.jpg"></a></li>
        <li><a href="#" target="_blank"><img src="images/20141011xsnxwp.jpg"></a></li>
        <li><a href="#" target="_blank"><img src="images/20141011wtgoib.jpg"></a></li>
        <li><a href="#" target="_blank"><img src="images/20141011kyzlws.jpg"></a></li>  
  </ul>
  <ul class="num" id="idNum">
         <li class="on">1</li>
         <li class="">2</li>
         <li class="">3</li>
         <li class="">4</li>
         <li class="">5</li>        
  </ul>
</div>
<script type="text/javascript">
    var $ = function(id) {
        return "string" == typeof id ? document.getElementById(id) : id;
    };
    var Class = {
        create : function() {
            return function() {
                this.initialize.apply(this, arguments);
            }
        }
    }
    Object.extend = function(destination, source) {
        for (var property in source) {
            destination[property] = source[property];
        }
        return destination;
    }
    var TransformView = Class.create();
    TransformView.prototype = {
        //容器对象,滑动对象,切换参数,切换数量
        initialize : function(container, slider, parameter, count, options) {
            if (parameter <= 0 || count <= 0)
                return;
            var oContainer = $(container), oSlider = $(slider), oThis = this;
            this.Index = 0;
            //当前索引

this._timer = null;
            //定时器
            this._slider = oSlider;
            //滑动对象
            this._parameter = parameter;
            //切换参数
            this._count = count || 0;
            //切换数量
            this._target = 0;
            //目标参数

this.SetOptions(options);

this.Up = !!this.options.Up;
            this.Step = Math.abs(this.options.Step);
            this.Time = Math.abs(this.options.Time);
            this.Auto = !!this.options.Auto;
            this.Pause = Math.abs(this.options.Pause);
            this.onStart = this.options.onStart;
            this.onFinish = this.options.onFinish;

oContainer.style.overflow = "hidden";
            oContainer.style.position = "relative";

oSlider.style.position = "absolute";
            oSlider.style.top = oSlider.style.left = 0;
        },
        //设置默认属性
        SetOptions : function(options) {
            this.options = {//默认值
                Up : true, //是否向上(否则向左)
                Step : 5, //滑动变化率
                Time : 10, //滑动延时
                Auto : true, //是否自动转换
                Pause : 2000, //停顿时间(Auto为true时有效)
                onStart : function() {
                }, //开始转换时执行
                onFinish : function() {
                }//完成转换时执行
            };
            Object.extend(this.options, options || {});
        },
        //开始切换设置
        Start : function() {
            if (this.Index < 0) {
                this.Index = this._count - 1;
            } else if (this.Index >= this._count) {
                this.Index = 0;
            }

this._target = -1 * this._parameter * this.Index;
            this.onStart();
            this.Move();
        },
        //移动
        Move : function() {
            clearTimeout(this._timer);
            var oThis = this, style = this.Up ? "top" : "left",
            iNow = parseInt(this._slider.style[style]) || 0,
            iStep = this.GetStep(this._target, iNow);

if (iStep != 0) {
                this._slider.style[style] = (iNow + iStep) + "px";
                this._timer = setTimeout(function() {
                    oThis.Move();
                }, this.Time);
            } else {
                this._slider.style[style] = this._target + "px";
                this.onFinish();
                if (this.Auto) {
                    this._timer = setTimeout(function() {
                        oThis.Index++;
                        oThis.Start();
                    }, this.Pause);
                }
            }
        },
        //获取步长
        GetStep : function(iTarget, iNow) {
            var iStep = (iTarget - iNow) / this.Step;
            if (iStep == 0)
                return 0;
            if (Math.abs(iStep) < 1)
                return (iStep > 0 ? 1 : -1);
            return iStep;
        },
        //停止
        Stop : function(iTarget, iNow) {
            clearTimeout(this._timer);
            this._slider.style[this.Up ? "top" : "left"] = this._target + "px";
        }
    };
    window.onload = function() {
        function Each(list, fun) {
            for (var i = 0, len = list.length; i < len; i++) {
                fun(list[i], i);
            }
        };

var objs = $("idNum").getElementsByTagName("li");

var tv = new TransformView("idTransformView", "idSlider", 395, 5, {
            onStart : function() {
                Each(objs, function(o, i) {
                    o.className = tv.Index == i ? "on" : "";
                })
            }//按钮样式
        });

tv.Start();

Each(objs, function(o, i) {
            o.onmouseover = function() {
                o.className = "on";
                tv.Auto = false;
                tv.Index = i;
                tv.Start();
            }
            o.onmouseout = function() {
                o.className = "";
                tv.Auto = true;
                tv.Start();
            }
        })

</script>

时间: 2024-10-09 22:30:09

[JS]图片自动切换效果(学习笔记)的相关文章

js图片自动切换效果处理代码

1 <script language =javascript > 2 var curIndex=0; 3 //时间间隔 单位毫秒 4 var timeInterval=1000; 5 var arr=new Array(); 6 arr[0]="1.jpg"; 7 arr[1]="2.jpg"; 8 arr[2]="3.jpg"; 9 arr[3]="4.jpg"; 10 arr[4]="5.jpg&qu

js实现图片自动切换效果。

js实现图片自动切换效果,简单实用,原谅我只是一只小菜鸟还在学大神天天写博文装逼. <script language="javascript"> setInterval(test, 2000); var array = new Array(); var index = 0; var array = new Array("../../Content/images/3s1hj_kqzew4k2ozbhs2dwgfjeg5sckzsew_780x520.jpg"

一款常用的漂亮的JS图片滑动切换效果

<HTML> <HEAD> <TITLE>一款常用的漂亮的JS图片滑动切换效果丨石家庄展柜制作|</TITLE> <style> BODY { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } UL { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PAD

JS图片自动轮换效果实现

今天不在状态,五一快到了,俺就特想玩了.好了,天色已晚,闲话不多说,看下用javaScript 实现的图片自动轮换效果,先看图片 下面是具体的代码,还是比较简单的. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="htt

JS图片自动和可控的轮播切换特效

详细内容请点击 点击这里查看效果: http://hovertree.com/texiao/js/1.htm HTML文件代码如下:  <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"/> <title>JS图片自动和可控的轮播切换特效 - 何问起 HoverTree</ti

js页面切换效果学习(基础)

css代码 .div1{ width: 130px; height: 130px; }.div2{ width: 20px;height:160px; margin-top: 0px; float: left;}body{ font-size: 12px;}.div2 li{ list-style-type: none; margin-top: 3px; background-color: wheat; height: 40px; text-align: center; padding-top:

JS图片Switchable切换大集合

JS图片切换大集合 利用周末2天把JS图片切换常见效果封装了下,比如:轮播,显示隐藏,淡入淡出等.废话不多说,直接看效果吧!JSFiddler链接如下: 想看JS轮播切换效果请点击我! 当然由于上传图片时候 png图片自动转换成jpg 所以左右按钮有透明,但是也没有关系,我们最主要的是看看效果是什么样的,至于图片大家可以替换.下面看看默认配置项吧!   container '',     外层容器 必填项 默认为空  contentCls  '.list',     内容所在的容器 默认为'.l

手机端图片滑动切换效果

最近公司要求开发wap版本页面,碰到了个图片滑动切换效果,折腾了半天,自己封装了一个比较通用的小控件,在此分享一下. 大概功能:可以自定义是否自动切换,支持单手滑动图片进行切换,支持左右滑动切换.循环切换等等,具体可以拿demo代码自己本地试试,注意只支持手机端哦 大概思路:通过touchstart.touchmove.touchend 三个事件加上css3的3d变化效果配合,实现滑动切换图片, 开发是基于Zepto框架,当然也支持其他任何一款手机端框架,只需将代码中的美元符号$换为指定框架操作

node.js在windows下的学习笔记(2)---简单熟悉一些命令

1.打开如下的安装 2.输入node -v,显示node的版本号 3.输入node --help.显示帮助命令 4.自己用一个文本编辑器编写一下代码,保存为text.js,然后在控制台输入node.exe  text.js的路径(直接把这个js文件拖到控制台自动显示路径),按下回车键 var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {&