当前位置:首页 > WEB前端 > HTML > 正文内容

HTML5轮播图片段

ZnanrHTML1078
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>轮播图</title>
</head>
<style type="text/css">
* {
    margin: 0;
    padding: 0;
    text-decoration: none;
    color: #333;
}

#container {
    width: 1920px;
    height: 800px;
    overflow: hidden;
    position: relative;
}

#list {
    overflow: hidden;
    position: absolute;
}

#list a {
    overflow: hidden;
    display: block;
    float: left;
}

#list img {
    width: 100%;
    height: 800px;
    float: left;
}

#spanlist {
    position: absolute;
    z-index: 999;
    bottom: 15px;
    left: 50%;
    padding: 5px 10px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 10px;
}

#spanlist span:last-child{
    margin-right: 0px;
}
.span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    float: left;
    margin-right: 10px;
}

.span1 {
    width: 30px;
    height: 10px;
    border-radius: 10px;
    background: #fff;
    float: left;
    margin-right: 10px;
}

.spanbright {
    width: 30px;
    height: 10px;
    border-radius: 10px;
    background: #fff;
    float: left;
    margin-right: 10px;
}

.left {
    font-size: 80px;
    line-height: 80px;
    font-weight: bolder;
    z-index: 2;
    position: absolute;
    left: 10px;
    top: 50%;
    margin-top: -48px;
    color: rgba(255, 255, 255, 0.5);
    display:none;
}

.right {
    font-size: 80px;
    z-index: 2;
    position: absolute;
    right: 10px;
    top: 50%;
    line-height: 80px;
    height: 80px;
    margin-top: -48px;
    color: rgba(255, 255, 255, 0.5);
    font-weight: bolder;
    display:none;
}


</style>

<body>
    <div id="container" onmouseover="stop()" onmouseout="play()">
        <div id="list" >
            <a><img src="http://www.zhwkg.com/uploads/20190727/f01bada06e08517e1377ae2dc0b92af2.jpg"></a>
            <a><img src="http://www.zhwkg.com/uploads/20200727/d34b34e44d650c8393ec4332e5943c6f.jpg"></a>
            <a><img src="http://www.zhwkg.com/uploads/20190719/c99fa7cb61fd5098cc79fcd9f357c83c.jpg"></a>
        </div>
        <div id="spanlist">
        </div>
        <a href="javascript:;" id="left">
            <</a>
                <a href="javascript:;" id="right">></a>
    </div>
    <script type="text/javascript">
    function $$(id) { //获取标签的函数
        return document.getElementById(id);
    }
    </script>
    <script type="text/javascript">
    var list = $$('list');
    var listLength = $$('list').getElementsByTagName('a').length; //获取图片的数量
    var imgWidth = list.getElementsByTagName('a')[0].offsetWidth; //获取每张图片宽度
    list.style.width = listLength * imgWidth + "px"; //自动给图片列表增加宽度
    var widthAll = listLength * imgWidth + "px";

    var spanlist = $$('spanlist') //获取圆点的总标签

    for (var i = 0; i < listLength; i++) { //根据图片数量,动态添加span
        spanlist.appendChild(document.createElement("span"));
    }

    var spanlists = spanlist.getElementsByTagName('span') //获取span标签的数组
    for (var i = 0; i < listLength; i++) {
        spanlists[i].className = "span"; //遍历所有span,为每个span增加css样式
        spanlists[i].setAttribute("index", i) //为每个span标签增加下标index(0,1,2,3...图片数量-1)
    }

    spanlists[0].className = "span1"; //覆盖前面的第一个span样式

    //根据spanlist圆点的总宽度,动态调整为中间位置
    var spanlistWidth = spanlist.offsetWidth / 2; //获取spanlist的宽度并除于2
    spanlist.style.marginLeft = "-" + spanlistWidth + "px";

    //定义自动切换每次改变的left距离
    var t = 1; //当前图片序列号

    rs = setInterval('rightsmooth()', 1);//立马获取re
    clearInterval(rs) //立马清除

    function autoswitch(){
        t += 1;
        rs = setInterval('rightsmooth()', 1);
    }

    timer = setInterval('autoswitch()', 2000); //每2秒执行一次autoswitch函数


    //按钮向右过渡图片
    function rightsmooth() {
        clearInterval(rs)
        if (t>listLength) {
            list.style.cssText="transition-duration: 500ms;transition-timing-function: ease-out;transform: translatex(-"+0*imgWidth+"px);width:"+widthAll;
            t=1;
        }else{
            list.style.cssText="transition-duration: 500ms;transition-timing-function: ease-out;transform: translatex(-"+(t-1)*imgWidth+"px);width:"+widthAll;
        }

        for (var j = 0; j < spanlists.length; j++) { //每一次图片滚动,自动改变圆点标签的颜色
            spanlists[j].setAttribute('class', 'span');
        }
        spanlists[t - 1].setAttribute('class', 'spanbright');
        console.log(t)

    }
    //按钮向左过渡图片
    function leftsmooth() {
        console.log(t)
        if (t == 0) {
            list.style.cssText="transition-duration: 500ms;transition-timing-function: ease-out;transform: translatex(-"+(listLength-1)*imgWidth+"px);width:"+widthAll;
            t=listLength
        }else{
            list.style.cssText="transition-duration: 500ms;transition-timing-function: ease-out;transform: translatex(-"+(t-1)*imgWidth+"px);width:"+widthAll;
        }
        for (var j = 0; j < spanlists.length; j++) { //每一次图片滚动,自动改变圆点标签的颜色
            spanlists[j].setAttribute('class', 'span');
        }
        spanlists[t - 1].setAttribute('class', 'spanbright');
    }



    for (var i = 0; i < spanlists.length; i++) { //为每一个span标签动态添加鼠标事件
        spanlists[i].onmouseover = function() {
            for (var j = 0; j < spanlists.length; j++) { //重置所有span的样式
                spanlists[j].setAttribute('class', 'span');
            }
            var myIndex = parseInt(this.getAttribute("index")); //获取每个鼠标事件绑定的index下标的值
            spanlists[myIndex].setAttribute('class', 'spanbright'); //根据下标值改变颜色
            list.style.left = "-" + imgWidth * myIndex + "px"; //变换到指定下标对应的图片
            t = myIndex + 1; //图片序号等于对应鼠标事件的下标(由于一开始t就比下标大1,所以这里加1)
            console.log(t)
        }
    }




    document.addEventListener('visibilitychange', function() { //浏览器切换事件
        if (document.visibilityState == 'hidden') { //状态判断
            clearInterval(timer);
        } else {
            timer = setInterval('autoswitch()', 2000);
        }
    })

    function stop() {
        clearInterval(timer);
        $$('left').style.display = "block";
        $$('right').style.display = "block";
    }

    function play() {
        $$('left').style.display = "none";
        $$('right').style.display = "none";
        timer = setInterval('autoswitch()', 2000); //每2秒执行一次autoswitch函数
    }


    $$('left').onclick = function() { //鼠标点击左边按钮,图片向左
        t = t - 1;
        leftsmooth()
    }
    $$('right').onclick = function() { //鼠标点击右边按钮,图片向右
        t += 1;
        rightsmooth();
    }
    </script>
</body>

</html>
————————————————


扫描二维码推送至手机访问。

版权声明:本文由Znanr发布,如需转载请注明出处。

本文链接:https://www.znanr.com/?id=79

标签: HTML轮播图

相关文章

前端:如何屏蔽审查元素,禁止修改页面代码

前端:如何屏蔽审查元素,禁止修改页面代码

众所周知,审查元素的情况下,大家都可以随机更改一部分页面的代码,注入恶意JS等等,这种情况避免也不难,虽然还能看到一部分H5源码,但是无法修改一、屏蔽F12 审查元素document.onkeydow...

防止页面内容被复制

防止页面内容被复制

第一种方法:当别人在网站复制文字的时候,复制成功后会有一个弹窗提示,提醒下复制的人要保留出处<script type="text/javascript">do...

在线网页扒皮,良心站长!

在线网页扒皮,良心站长!

今天在CSDN看到有Coder的铁子给分享了一个在线扒皮工具,本人觉得这种工具多的是,在爬jq的时候顺便试了一把。我去,真TN的干净,这工具站长做的很酷啊,最起码我不用去各种乱找乱删了。现在给大家也分...

网页自动跳转

网页自动跳转

<meta http-equiv="refresh" content="1;URL=http://www.znanr.com/">...

旧版的Html页面插入flash代码

旧版的Html页面插入flash代码

代码有很多种,我在这里总结了一下最平常的插入方 式,以便下回能够直接拿来使用。Html插入flash代码方法<object?classid=“clsid:d27cdb6e-ae6d-11cf-9...

Unicode码的转换实现网页加密,防止破解

Unicode码的转换实现网页加密,防止破解

<HTML> <HEAD><SCRIPT LANGUAGE=”Javascript”><!–//此网页已加密! 请联系客服获取密码!...