html轮播效果的实现

要实现如下图的效果

点击可以选择图片;不点击的时候自动轮播;并且点击完后再次自动轮播。

思路:如同在房子里透过窗子看路过的火车一样,窗子是不动的,但火车是陆续经过窗子的,所以透过窗子可以看到依次看完所有的火车。

1. 让将图片排成一列“火车”:ul中li(li中放着轮播图片)漂浮起来后,就排列成一溜了

2. 要有一个“窗口”,把“火车”放到“窗口”里:设置div的固定长度,使它宽度等于ul中一个li的宽度

3. 让“火车”动起来:利用margin-left样式可以选择要在“窗口”显示的图片。

代码如下:

<!DOCTYPE html>
<html>
<head>
<title>图片轮播效果</title>
<link rel="stylesheet" type="text/css" href="./css/reset.css" />
<style>
.container{
    width:100%;
    margin:0 auto;
}
/* 轮播容器 */
.img_wrap{
    width:440px;
    height:440px;
    margin:0 auto;
    position:relative;
}
.img_wrap ul li{
    float:left;
}
/* 轮播索引 */
.img_wrap .img_index{
    position:absolute;
    right:20px;
    bottom:20px;
}
.img_wrap .img_index ul li{
    width:16px;
    height:16px;
    background:gray;
    border-radius:8px;
    cursor:pointer;
    margin-right:4px;
}
.img_wrap .img_index ul li.on{
    background:#fd4b4b;
}
/* 轮播图片容器 */
.img_wrap .img_lunbo{
    width:440px;
    height:440px;
    overflow:hidden;

}
</style>

<script>
window.onload = function(){
    var currentIndex = 1; //当前索引
    var time = 2000; //时间间隔
    var length = 5; //几个索引
    var timer = null; //定时器
    indexBindClick();
    //自动轮播
    autoPlay();

    //给索引绑定事件
    function indexBindClick(){
        var lis = document.getElementsByClassName("img_index")[0].getElementsByTagName("li");
        for(var i=0; i<lis.length; i++){
            lis[i].onclick = function(){
                //换图片显示
                currentIndex = getIndex(this);
                clearInterval(timer);
                showImg();
                autoPlay();
            };
        }
    }
    function autoPlay(){
        timer = setInterval(function(){
            showImg();
            currentIndex++;
        },time);
    }
    //显示图片
    function showImg(){
        if(currentIndex >= 5){
            currentIndex = 0;
        }
        //改变小图标样式
        var lis = document.getElementsByClassName("img_index")[0].getElementsByTagName("li");
        for(var j=0; j<lis.length; j++){
            lis[j].className = "";
        }
        lis[currentIndex].className = "on";

        //显示当前图片
        var ul = document.getElementsByClassName("img_lunbo")[0].getElementsByTagName("ul")[0];
        var li_width = ul.getElementsByTagName("li")[0].scrollWidth;
        var marginLeft = -currentIndex * li_width;
        ul.style.marginLeft = marginLeft + "px";
    }

    /* 获取对象在父节点中索引 */
    function getIndex(obj){
        var children = obj.parentNode.children;
        for(var i=0; i<children.length; i++){
            if(children[i] == obj){
                return i;
            }
        }
    }
};
</script>
</head>

<body>
<div class="container">
<div class="img_wrap">
    <div class="img_index">
        <ul>
            <li class="on"></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <div class="img_lunbo">
        <ul>
            <li><img src="./images/lunbo1.jpg" /></li>
            <li><img src="./images/lunbo2.jpg" /></li>
            <li><img src="./images/lunbo3.jpg" /></li>
            <li><img src="./images/lunbo4.jpg" /></li>
            <li><img src="./images/lunbo5.jpg" /></li>
        </ul>
    </div>
</div>
</div>
</body>
</html>

reset.css初始化代码和图片要自己准备。

时间: 2024-10-07 06:28:48

html轮播效果的实现的相关文章

CSS3图片轮播效果

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

网站——如何实现轮播效果

实现轮播效果需要运用到的知识: DOM操作 定时器 事件运用 Js动画 函数递归 无限滚动 原理:控制图片列表的“left”值来显示相应的图片 组成部分<div id="container">: <div id="list">//图片列表 <div id="list" style="left:-600px">//当图片的宽度全部为600px时 <img src=""

基本_移动类型轮播效果_框架

一.基本元素: D:display window;用户浏览的窗口: S:scroll window;存放内容的大容器:通过移动来改变显示的内容: C:content;内容信息: B:button;按钮,多种样式,可选: 二.思路: 通过移动S 的位置,由于C位于S中,所有的C将会同时跟随S而移动. 在D中显示的内容将会被改变. 三.html结构: 1 <div class=”D”> 2 <div class=”S”> 3 <div class=”C”>content&l

jQuery制作无缝轮播效果

[一]HTML结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jquery制作无缝轮播器</title> <script type="text/javascript" src="jquery-1.12.4.js"></script> &

js的轮播效果

图片的轮播效果!主要运用了元素的style样式属性,与 setInterval(); <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{ margin: 0; padding: 0; } div{ width: 960px; height: 400px; o

简单的一个轮播效果

刚刚学了Jquery,写了一个简单的图片滑动,但不是完成品. <!DOCTYPE html> <meta content="text/html" charset="utf-8"/><html><head> <title></title> <link href="css/lunbo.css" rel="stylesheet"/> <scri

调用MyFocus库,简单实现二十几种轮播效果

一.首先点击这里下载myFocus库文件,标准文件库就行了,很小仅仅1.4M. myFocus库有以下的好处: a . 文件小巧却高效强大,能够实现二十几种轮播的效果. b . 极其简单的使用,只需要调用就可以使用,下面会介绍方法. c . 灵活的设置,很多参数可以提供设置,比如不想要文字提示,设置高度为0....更多参数适用请见网站教程页面. 二.下载下来之后,解压,看到一个文件夹,如下图所示: 对此文件夹进行一下说明:a . 打开js文件夹,然后有个js文件,就是我们最开始要调用的myfoc

Android中使用ViewPager实现屏幕页面切换和页面轮播效果

之前关于如何实现屏幕页面切换,写过一篇博文<Android中使用ViewFlipper实现屏幕切换>,相比ViewFlipper,ViewPager更适用复杂的视图切换,而且Viewpager有自己的adapter,这也让其适应复杂对象,实现数据的动态加载. ViewPager是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api.而viewpager就是其中之一,利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等. 下面我们就展示下Vie

JQuery实现图片轮播效果源码

======================整体结构======================== <div class="banner"> <ul class="banner-imgs"> <li class="banner-img"> <a href="#"><img src="#" alt="" /></a>