简洁原生js实现轮播图

html:

<div class="comiis_wrapad" id="slideContainer">
        <div id="frameHlicAe" class="frame cl">
            <div class="temp"></div>
            <div class="block">
                <div class="cl">
                    <ul class="slideshow" id="slidesImgs">
                        <li><a href="" target="_blank">
                            <img src="images/1.jpg"/></a><span class="title">1</span></li>
                        <li><a href="" target="_blank">
                            <img src="images/2.jpg"/></a><span class="title">2</span></li>
                        <li><a href="" target="_blank">
                            <img src="images/3.jpg"/></a><span class="title">3</span></li>
                        <li><a href="" target="_blank">
                            <img src="images/4.jpg"/></a><span class="title">4</span></li>
                        <li><a href="" target="_blank">
                            <img src="images/5.jpg"/></a><span class="title">5</span></li>
                    </ul>
                </div>
                <div class="slidebar" id="slideBar">
                    <ul>
                        <li class="on">1</li>
                        <li>2</li>
                        <li>3</li>
                        <li>4</li>
                        <li>5</li>
                        <li>6</li>
                        <li>7</li>
                        <li>8</li>
                        <li>9</li>
                        <li>10</li>
                    </ul>
                </div>
            </div>
        </div>
    </div>

css:

*{word-wrap:break-word;}
body{color:#444;font:12px/1.5 Tahoma,‘Microsoft Yahei‘,Simsun;}
body,li,ul{margin:0;padding:0;}
ul li{list-style:none;}
a{color:#000;text-decoration:none;}
a:hover{text-decoration:underline;}
a img{border:none;}
.cl:after{clear:both;display:block;visibility:hidden;height:0;content:".";}
.cl{zoom:1;}
.frame{margin-bottom:10px;border:1px solid #e1e1e1;background:#FFF;}
.title{overflow:hidden;padding:0 10px;height:32px;font-weight:700;font-size:14px;line-height:32px;}
.block{margin:10px 10px 0;}
.temp{margin:1px;}
.slideshow{clear:both;}
.slideshow li{position:relative;overflow:hidden;}
.slideshow span.title{position:absolute;bottom:0;left:0;margin-bottom:0;width:100%;height:32px;text-indent:10px;font-size:14px;line-height:32px;}
.slidebar li,.slideshow span.title{overflow:hidden;background:rgba(0,0,0,.3);color:#FFF;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#30000000, endColorstr=#30000000);}
.slidebar li{float:left;margin-right:1px;width:20px;height:20px;text-align:center;font-size:10px;line-height:20px;cursor:pointer;}
.slidebar li.on{background:rgba(255,255,255,.5);color:#000;font-weight:700;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#50FFFFFF, endColorstr=#50FFFFFF);}
li,ul{list-style:none;}
a:hover{color:#a50001;text-decoration:underline;}
.frame{margin-bottom:0;border:0 solid #fff;background:0 0;}
.temp{margin:0;}
.slidebar{position:absolute;top:5px;left:4px;}
.slidebar li,.slideshow span.title{overflow:hidden;background:rgba(0,0,0,.3);color:#FFF;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#90000000, endColorstr=#90000000);}
.slidebar li.on{background:rgba(255,255,255,.5);color:#ff0;font-weight:700;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#90000000, endColorstr=#90000000);}
.slideshow SPAN.title{text-indent:0;}
.block{position:relative;margin:0;}
#frameHlicAe{margin:0!important;border:0!important;}
.comiis_wrap960,.comiis_wrapad{margin:0 auto;width:100%;}
.comiis_wrapad{margin-top:10px;}
.comiis_wrapad{overflow:hidden;}
.comiis_wrapad img{float:left;margin-top:0;width:100%;height:400px;}
#slidesImgs li{display:none;width:100%;}

js:

function SlideShow(c) {
    var a = document.getElementById("slideContainer"), f = document.getElementById("slidesImgs").getElementsByTagName("li"), h = document.getElementById("slideBar"), n = h.getElementsByTagName("li"), d = f.length, c = c || 3000, e = lastI = 0, j, m;
    function b() {
        m = setInterval(function () {
            e = e + 1 >= d ? e + 1 - d : e + 1;
            g()
        }, c)
    }
    function k() {
        clearInterval(m)
    }
    function g() {
        f[lastI].style.display = "none";
        n[lastI].className = "";
        f[e].style.display = "block";
        n[e].className = "on";
        lastI = e
    }
    f[e].style.display = "block";
    a.onmouseover = k;
    a.onmouseout = b;
    h.onmouseover = function (i) {
        j = i ? i.target : window.event.srcElement;
        if (j.nodeName === "LI") {
            e = parseInt(j.innerHTML, 10) - 1;
            g()
        }
    };
    b();
};
最后启动传参这个函数(参数是时间):SlideShow(3000)
时间: 2024-12-23 13:07:04

简洁原生js实现轮播图的相关文章

用原生js封装轮播图

原生js封装轮播图 对于初学js的同学来说,轮播图还是一个难点,尤其是原生js封装轮播图代码,下面是我之前做的一个轮播图项目中封装好的一些代码,有需要的同学可以看一下,有什么不懂的可以看注释,注释看不懂的可以直接私信我 slide.js /* * 轮播图 */ function Slide(elem, ms, d, ind){ this.el = elem; this.w = parseInt(getStyle(elem, "width")); this.h = parseInt(ge

封装一个简单的原生js焦点轮播图插件

轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放.本篇文章的主要目的是分享封装插件的思路. 轮播图的我一开始是写成非插件形式实现的效果,后来才改成了封装成插件的形式. 首先要明白轮播图的实现原理和基本布局,大概就是外面有一个容器包裹着(通常是div),容器设置宽高,以及overflow为hidden,超出宽高部分隐藏, 容器里面又包含着另一个容器,包裹着所有的图片,宽为所有图片的总宽度,ul的position为absolute,通过改变ul的left

原生js简单轮播图 代码

在团队带人,突然被人问到轮播图如何实现,进入前端领域有一年多了,但很久没自己写过,一直是用大牛写的插件,今天就写个简单的适合入门者学习的小教程.当然,轮播图的实现原理与设计模式有很多种,我这里讲的是用面向过程函数式编程去实现,相对于面向对象设计模式,代码难免会显得臃肿冗余.但没有面向对象的抽象却很适合新手理解与学习.已经在BAT的同学看到希望少喷点.另外可以多提意见. 轮播图的原理: 一系列的大小相等的图片平铺,利用CSS布局只显示一张图片,其余隐藏.通过计算偏移量利用定时器实现自动播放,或通过

原生js封装轮播图

个人实际开发中用到的效果问题总结出来便于自己以后开发查看调用,如果也适用其他人请随意拿走勿喷就行! 原生js对于思路要求比较高,在js代码我都写有备注,足够理解并使用,即使是小白或者刚入行的程序员也比叫好理解,其轮播图只是一个简单的效果,缺点没有写动画效果看起来比较生硬,优点简单好学,容易理解,非常实用 轮播图介绍 : 三张图片,图片下方有对应图片数量的三个指示点,左右有切换指示,左右指示可要可不要 HTML代码 <div id="mlBox"> <div id=&q

使用原生js实现轮播图效果

知乎原文 我的博客 微信公众号这几天在逛网站的时候,发现很多网站都有轮播图这个效果,所以我就仿照小米的官网用原生js写了一个轮播图效果,希望大家喜欢.这是我发布在github上的最后实现的效果:https://heternally.github.io/... 下面我简单跟大家说一下我实现该效果的过程,如果有什么错误的地方,欢迎大家说出来,以方便大家互相学习. 我相信前面简单的html+css大家应该都会,我这里就不说了,简单给大家展示一下代码: HTML部分 <div id="wrap&q

手把手原生js简单轮播图

在团队带人,突然被人问到轮播图如何实现,进入前端领域有一年多了,但很久没自己写过,一直是用大牛写的插件,今天就写个简单的适合入门者学习的小教程.当然,轮播图的实现原理与设计模式有很多种,我这里讲的是用面向过程函数式编程去实现,相对于面向对象设计模式,代码难免会显得臃肿冗余.但没有面向对象的抽象却很适合新手理解与学习.已经在BAT的同学看到希望少喷点.另外可以多提意见. 轮播图的原理: 一系列的大小相等的图片平铺,利用CSS布局只显示一张图片,其余隐藏.通过计算偏移量利用定时器实现自动播放,或通过

原生js实现轮播图

很多网站上都有轮播图,使用起来也比较炫酷,但找到一个系统的介绍却很难,这里做一个简单的介绍. 原理:将一些列的图片在一行中平铺,然后计算偏移量再利用定时器实现定时轮播. 步骤一: 建立html基本布局,如下所示: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>轮播图</title> </head> <body> <

原生js实现轮播图原理

轮播图的原理1.图片移动实现原理:利用浮动将所有所有照片依次排成一行,给这一长串图片添加一个父级的遮罩,每次只显示一张图,其余的都隐藏起来.对图片添加绝对定位,通过控制left属性,实现照片的移动. 2.图片移动动画原理:从a位置移动到b位置,需要先计算两点之间的差值,通过差值和时间间隔,计算出每次移动的步长,通过添加定时器,每次移动相同的步长,实现动画效果. 3.图片定位停止原理:每一张照片都有相同的宽度,每张照片都有一个绝对的定位数值,通过检测定每次移动后,照片当前位置和需要到达位置之间的距

原生js焦点轮播图

html: <html><head><style type="text/css">div, ul, li { margin: 0; padding: 0;}ul { list-style-type: none;}body { text-align: center; font: 12px/20px Arial;}#boxljwpx2 { position: relative; width: 640px; height: 237px;}#boxljwpx