20150627原生js轮播器

html====

<div id="banner">
    <div id="left" class="left"><span></span></div>
    <div id="right" class="right"><span></span></div>
    <ul class="pic">
        <li><img src="images/1.jpg" alt=""/></li>
        <li><img src="images/2.jpg" alt=""/></li>
        <li><img src="images/3.jpg" alt=""/></li>
    </ul>
    <div class="dot">
        <span class="active"></span>
        <span></span>
        <span></span>
    </div>
</div>

css=====

*{
    margin: 0;
    padding: 0;
}
li{list-style: none}
#banner {
    width: 600px;
    height: 300px;
    position: relative;
    margin: 0 auto;
    overflow: hidden;
}
#banner .left {
    width: 60px;
    height: inherit;
    position: absolute;
    left: 0;
    z-index: 3;
    opacity: 0.3;
}
#banner .left span {
    width: 60px;
    height: 70px;
    position: absolute;
    top: 150px;
    left: 0;
    display: block;
    background: url(../images/arrow.jpg) no-repeat 0 -10px;
    z-index: 4;
}
#banner .right {
    width: 60px;
    height: inherit;
    position: absolute;
    right: 0;
    z-index: 3;
    opacity: 0.3;
    filter: alpha(opacity=30);
}
#banner .right span {
    width: 60px;
    height: 70px;
    position: absolute;
    top: 150px;
    right: 0;
    display: block;
    background: url(../images/arrow.jpg) no-repeat 0 -95px;
}
#banner .pic {
    height: 300px;
    position: absolute;
    left: 0;
    z-index: 2;
}
#banner .pic li{
    width: 600px;
    height: 300px;
    float: left;
}
#banner .dot {
    position: absolute;
    bottom: 0px;
    left: 280px;
    width: 100px;
    height: 20px;
    z-index: 3;
}
#banner .dot span {
    margin-left: 15px;
    border-radius: 50%;
    width: 10px;
    height: 10px;
    display: block;
    float: left;
    background:#ccc;
}
#banner .dot span.active{
    background: red;
}

js========

(function () {
    var ulpic=document.getElementsByTagName(‘ul‘)[0];
    var lipic=ulpic.getElementsByTagName(‘li‘);
    ulpic.style.width=parseInt(css(lipic[0],‘width‘))*lipic.length+‘px‘;
    var dot=document.getElementsByClassName(‘dot‘)[0];
    var span=dot.getElementsByTagName(‘span‘);
    var left=document.getElementById(‘left‘);
    var right=document.getElementById(‘right‘);
    var iNow=0;
    var timer=null;
    left.onmouseover=function(){
        fade(this,100);
    }
    left.onmouseout=function(){
        fade(this,30);
    }
    right.onmouseover=function(){
        fade(this,100);
    }
    right.onmouseout=function(){
        fade(this,30);
    }
    left.onclick=function(){
        iNow=(iNow <= 0)?2:--iNow;
        banner();
    }
    right.onclick=function(){
        iNow=(iNow >=2)?0:++iNow;
        banner();
    }
    for(var i= 0,len=span.length;i<len;i++){
        span[i].index=i;
        span[i].onclick=function(){
            iNow=this.index;
            banner();
        }
    }
    function move(obj,json) {
        obj.timer&& clearInterval(obj.timer);
        obj.timer=setInterval(function () {
            var stop=true;
            for(var i in json){
                var tar=json[i];
                var cur=parseInt(css(obj,i));
                var speed=(tar-cur)/7;
                speed=(speed>0)?Math.ceil(speed):Math.floor(speed);
                if(i==‘zIndex‘){
                    obj.style[i]=tar;
                } else{
                    if(cur!=tar){
                        stop=false;
                        obj.style[i]=cur+speed+‘px‘;
                    }
                }
            }
            if(stop){
                clearInterval(obj.timer);
                obj.timer=null;
            }
        },40);
    }
    function fade(obj,tar){
        obj.timer&& clearInterval(obj.timer);
        obj.timer=setInterval(function () {
            var cur=css(obj,‘opacity‘)*100;
            var speed=(tar-cur)/7;
            if(cur!=tar){
                obj.style.opacity=(cur+speed)/100;
                obj.style.filter=‘alpha(opacity=‘+(cur+speed)+‘)‘;
            }else{
                clearInterval(obj.timer);
                obj.timer=null;
            }
        },50)
    }
    function css(obj,attr){
        if(window.getComputedStyle){
            return window.getComputedStyle(obj,false)[attr];
        }else{
            return obj.currentStyle[attr];
        }

    }
    function banner(){
        move(ulpic,{‘left‘:-iNow*parseInt(css(lipic[0],‘width‘))});
        for(var i= 0;i<span.length;i++){
            span[i].className=span[i].className.replace(/active/g,‘‘);
        }
        span[iNow].className+=‘ ‘+‘active‘;
    }
    setInterval(function () {
        iNow=(iNow>=2)?0:++iNow;
        banner();
    },3000)
})()
时间: 2024-08-02 20:59:43

20150627原生js轮播器的相关文章

原生JS轮播图

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>轮播图</title> 6 </head> 7 <style> 8 *{ 9 margin:0px; 10 padding:0px; 11 } 12 13 li{ 14 list-style: none; /*取消li默认的前缀*/ 15 } 16 17

原生js轮播图实现

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style type="text/css"> 7 * { 8 padding: 0; 9 margin: 0; 10 list-style: none; 11 bor

jQyery实现轮播器

看到各大网站上都有一个轮播器的效果,自己不禁也想做一个,查了资料,看了轮播器的原理,慢慢的试着做了做,最终效果勉勉强强 原理:如图,试想一下,若是将<ul>的width属性值设置的很宽,直到可以装下你所有的图片,而每一个图片又用<li>包着并且设置了左浮动. 那么当我们向左移动ul的时候并且移动的距离为<li>的宽度,第二个<li>不就被移动到了<div>的窗口,这样一来图片不就被一张一张显示出来了吗? 接下来我们在设置<div>的属

jQuery补充,基于jQuery的bxslider轮播器插件

基于jQuery的bxslider轮播器插件 html <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=n

20150604jq写的一个小轮播器

图片替换掉即可,图片大小在样式里设置 ============html==================== <div class="banner"> <div class="left"><span class="prev">←</span></div> <div class="right"><span class="next"

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

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

UIScrollView实现图片轮播器及其无限循环效果

图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @prop

轮播器

$(function () { //浏览器检测,判断是否是IE if(!+[1,]) { //alert("这是ie浏览器"); $('.new_Message').css('top', '14px'); //调整通知栏的位置 $('.stuUser').click(function () { if ($('.stuUser_ul ').css('display') == 'none') { $('.stuUser_ul ').css('display', 'block'); } el

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

1. 所用知识点 1> UIScrollView的基本属性,和UIPageControl设置,还有就是要用到NSTimer来定时实现UIScrollView的图片轮播 2> NSTimer简单介绍: 2.1  NSTimer叫做“定时器”,它的作用如下 * 在指定的时间执行指定的任务 * 每隔一段时间执行指定的任务 2.2  NSTimer简单使用: 1> 调用下面的方法就会开启一个定时任务 + (NSTimer *)scheduledTimerWithTimeInterval:(NST