图片轮播,复制即用,安全快捷!

html代码

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>js图片自动轮播切换代码</title>
<link href="lanrenzhijia.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="lanrenzhijia.js"></script>
</head>
<body>
<div id="box_lanrenzhijia">
    <div class="list">
        <ul>
            <li><img src="01.jpg" width="1000" height="170" /></li>
            <li><img src="02.jpg" width="1000" height="170" /></li>
            <li><img src="03.jpg" width="1000" height="170" /></li>
            <li><img src="04.jpg" width="1000" height="170" /></li>
            <li><img src="05.jpg" width="1000" height="170" /></li>
        </ul>
    </div>
</div>
</body>
</html>

CSS部分代码

@charset "utf-8";

body, div, ul, li {
    margin:0;
    padding:0;
}
ul {
    list-style-type:none;
}

#box_lanrenzhijia {
    position:relative;
    width:1000px;/*控制DIV大小*/
    height:172px;
    background:#fff;
    border-radius:5px;
    border:8px solid #fff;
    margin:10px auto;
    cursor:pointer;
}
#box_lanrenzhijia .list {
    position:relative;
    width:1000px;/*这也改*/
    height:170px;
    overflow:hidden;
}
#box_lanrenzhijia .list ul {
    position:absolute;
    top:0;
    left:0;
}
#box_lanrenzhijia .list li {
    width:1000px;/*这也改*/
    height:170px;
    overflow:hidden;
}
#box_lanrenzhijia .count {
    position:absolute;
    right:0;
    bottom:5px;
}
#box_lanrenzhijia .count li {
    color:#fff;
    float:left;
    width:20px;
    height:20px;
    cursor:pointer;
    margin-right:5px;
    overflow:hidden;
    background:#F90;
    opacity:0.7;
    filter:alpha(opacity=70);
    border-radius:20px;
}
#box_lanrenzhijia .count li.current {
    color:#fff;
    opacity:1;
    filter:alpha(opacity=100);
    font-weight:700;
    background:#f60;
}
#tmp {
    width:100px;
    height:100px;
    background:red;
    position:absolute;
}

js部分代码

// 代码整理:懒人之家

//获取ID
var $ = function (id) {return typeof id === "string" ? document.getElementById(id) : id};
//获取tagName
var $$ = function (tagName, oParent) {return (oParent || document).getElementsByTagName(tagName)};
//自动播放对象
var AutoPlay = function (id) {this.initialize(id)};
AutoPlay.prototype = {
    initialize: function (id)
    {
        var oThis = this;
        this.oBox = $(id);
        this.oUl = $$("ul", this.oBox)[0];
        this.aImg = $$("img", this.oBox);
        this.timer = null;
        this.autoTimer = null;
        this.iNow = 0;
        this.creatBtn();
        this.aBtn = $$("li", this.oCount);
        this.toggle();
        this.autoTimer = setInterval(function ()
        {
            oThis.next()
        }, 3000);
        this.oBox.onmouseover = function ()
        {
            clearInterval(oThis.autoTimer)
        };
        this.oBox.onmouseout = function ()
        {
            oThis.autoTimer = setInterval(function ()
            {
                oThis.next()
            }, 3000)
        };
        for (var i = 0; i < this.aBtn.length; i++)
        {
            this.aBtn[i].index = i;
            this.aBtn[i].onmouseover = function ()
            {
                oThis.iNow = this.index;
                oThis.toggle()
            }
        }
    },
    creatBtn: function ()
    {
        this.oCount = document.createElement("ul");
        this.oFrag = document.createDocumentFragment();
        this.oCount.className = "count";
        for (var i = 0; i < this.aImg.length; i++)
        {
            var oLi = document.createElement("li");
            oLi.innerHTML = i + 1;
            this.oFrag.appendChild(oLi)
        }
        this.oCount.appendChild(this.oFrag);
        this.oBox.appendChild(this.oCount)
    },
    toggle: function ()
    {
        for (var i = 0; i < this.aBtn.length; i++) this.aBtn[i].className = "";
        this.aBtn[this.iNow].className = "current";
        this.doMove(-(this.iNow * this.aImg[0].offsetHeight))
    },
    next: function ()
    {
        this.iNow++;
        this.iNow == this.aBtn.length && (this.iNow = 0);
        this.toggle()
    },
    doMove: function (iTarget)
    {
        var oThis = this;
        clearInterval(oThis.timer);
        oThis.timer = setInterval(function ()
        {
            var iSpeed = (iTarget - oThis.oUl.offsetTop) / 5;
            iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
            oThis.oUl.offsetTop == iTarget ? clearInterval(oThis.timer) : (oThis.oUl.style.top = oThis.oUl.offsetTop + iSpeed + "px")
        }, 30)
    }
};
window.onload = function ()
{
    new AutoPlay("box_lanrenzhijia");
};
时间: 2024-10-06 01:34:25

图片轮播,复制即用,安全快捷!的相关文章

Android Studio导入GitHub上的项目常见问题(以图片轮播开源项目为实例)

前言:github对开发者而言无疑是个宝藏,但想利用它可不是件简单的事,用Android studio导入开源项目会遇到各种问题,今天我就以github上的一个图片轮播项目为例,解决导入过程中的常见问题. 1.下载项目压缩包 2.由于android studio采用gradle自动构建,而每个项目的gradle版本不一致会导致编译异常,所以要修改开源项目的gradle版本,过程如下 打开自己本地建立工程下的build.gradle文件,将其全部复制. 然后用记事本或其他软件打开开源项目下的bui

jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承

上一篇文中完成的封装,还存在一个小问题,就是该轮播对象不能在同一页面中重复使用,本文将通过组合使用javascript的构造函数和原型模式创建对象来解决这个问题. 没有看过上一篇文章的朋友可以点此查看上一篇文章 (jQuery图片轮播(一)轮播实现并封装) 首先回顾一下,上文的问题所在,上文中的carsouel对象是采用字面量的方式来定义的,这样carsouel本就是一个实例,想要使用在多处时,这个对象的方法会发生冲突,最终只会执行最后的那一个.而通过采用构造函数的方式来定义对象carsouel

CSS3图片轮播效果

原文:CSS3图片轮播效果 在网页中用到图片轮播效果,单纯的隐藏.显示,那再简单不过了,要有动画效果,如果是自己写的话(不用jquery等),可能要费点时间.css3的出现,让动画变得不再是问题,而且简单易用.下面介绍我用css3与js写的一个图片轮播效果. 一般图片轮播就是三四张图片: <div class="wrap"> <div class="carousel"> <div><img src="http://

UISCrollView —— 图片轮播器封装实现(三)——(第三讲)

1.分析 利用xib布局,然后自定义一个UIView,解析xib,然后利用控制器传入数据,将其加载到控制器的view上展示即可 2. 程序结构 3. 代码具体实现 1>  xib文件 2>  创建类 XMGPageView,然后将其与xib文件关联,选中xib文件,然后设置下文中 " custom class " 为定义的类,让其来管理xib 1>    (如图,设置xib与类关联) 2>  XMGPageView.h 文件中,声明分页图片数组属性,及其一个快速

ionic 图片轮播问题

1.使用ion-slide可以实现图片轮播,但是如果在html中仅仅增加ion-slide是远远不够的,会出现两个问题: (注:使用的是angularjs.首先需要在,js文件中注入:$ionicSlideBoxDelegate) 一.有时候会出现图片无法加载出来.解决办法是: 在相应的controller文件增加 $ionicSlideBoxDelegate.update(); 二.轮播至最后一个不轮播的问题,解决的办法是: 在相应的controller文件增加 $ionicSlideBoxD

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> <meta http-equiv="Content-

IOS 图片轮播实现原理 (三图)

IOS 图片轮播实现原理的一种 图片轮播所要实现的是在一个显示区域内通过滑动来展示不同的图片. 当图片较少时我们可以采用在滚动视图上添加很多张图片来实现. 但是如果图片数量较多时,一次性加载过多图片会浪费内存,影响性能. 因此我们要采取适当地方法来实现图片的轮播. 下面我们只是简单的介绍很多方法中的一种简单的实现原理. 一 二 三 四 五 六 七

面向对象编程---图片轮播

今天复习了一下面向对象编程,下面是我的效果图 看着这个图片你会觉得这没有什么,那么上代码: html部分: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style> 7 ul,ol,li{padding:0;margin:0;li

ionic 图片轮播ion-slide-box问题

1.使用ion-slide可以实现图片轮播,但是如果在html中仅仅增加ion-slide是远远不够的,会出现两个问题: (注:使用的是angularjs.首先需要在,js文件中注入:$ionicSlideBoxDelegate) 一.有时候会出现图片无法加载出来.解决办法是: 在相应的controller文件增加 $ionicSlideBoxDelegate.update(); 二.轮播至最后一个不轮播的问题,解决的办法是: 在相应的controller文件增加 $ionicSlideBoxD

一分钟搞定AlloyTouch图片轮播

一分钟搞定AlloyTouch图片轮播 轮播图也涉及到触摸和触摸反馈,同时,AlloyTouch可以把惯性运动打开或者关闭,并且设置min和max为运动区域,超出会自动回弹.除了一般的竖向滚动,AlloyTouch也可以支持横向滚动,甚至任何属性的运动,因为它的设计的本质就是属性无关,触摸可以反馈到任何属性的运动.所以AlloyTouch制作各种各样的轮播组件还是得心应手. 第一种轮播图如上图所示.下面开始实现的过程. 第0秒 <div id="carousel-container&quo