利用JavaScript的控制图片的CSS位置实现轮播图功能

简介: 利用JavaScript的控制图片的CSS位置实现轮播图功能上篇博客我们说到了如何给轮播图添加定时器效果,当然前面的两个轮播图功能实现都是通过改变图片的路径(图片名称取巧)实现的,有一定的局限性。今天说一说怎样通过改变位置实现轮播功能。效果如图:在这里插入图片描述HTML代码: <div class="box" id="box"> <ul class="min_box" id="banner"> <li class="banner"></li> <li class="banner"></li>

利用JavaScript的控制图片的CSS位置实现轮播图功能




上篇博客我们说到了如何给轮播图添加定时器效果,当然前面的两个轮播图功能实现都是通过改变图片的路径(图片名称取巧)实现的,有一定的局限性。今天说一说怎样通过改变位置实现轮播功能。效果如图:

2020060500411786.gif

在这里插入图片描述


HTML代码:

<divclass="box"id="box"><ulclass="min_box"id="banner"><liclass="banner"></li><liclass="banner"></li><liclass="banner"></li><liclass="banner"></li></ul><divclass="btn btn_l">&lt;</div><divclass="btn btn_r">&gt;</div><ulclass="points"><liclass="red blue"></li><liclass="red"></li><liclass="red"></li><liclass="red"></li></ul></div>


CSS代码:


* {
            margin: 0;
            padding: 0;
            list-style: none;
        }
        .box {
            width: 500px;
            height: 300px;
            position: absolute;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            margin: auto;
            border: 20px yellow solid;
            overflow: hidden;
        }
        img {
            width: 500px;
            height: 300px;
        }
        .btn,
        .points {
            position: absolute;
            cursor: pointer;
        }
        .btn {
            width: 20px;
            height: 40px;
            background: green;
            color: white;
            font-size: 20px;
            text-align: center;
            line-height: 40px;
            top: 50%;
            margin-top: -20px;
            z-index: 999;
        }
        .btn_l {
            left: 0;
        }
        .btn_r {
            right: 0;
        }
        .points {
            width: 100px;
            height: 20px;
            border-radius: 20px;
            background: skyblue;
            left: 50%;
            margin-left: -50px;
            bottom: 30px;
        }
        .points .red {
            width: 15px;
            height: 15px;
            border-radius: 50%;
            background-color: red;
            float: left;
            margin: 2.5px 5px;
        }
        .points li.blue {
            background: blue;
        }
        .min_box {
            width: 2000px;
            height: 300px;
            background: skyblue;
            position: absolute;
            top: 0px;
            left: 0px;
        }
        .min_box .banner {
            width: 500px;
            height: 300px;
            float: left;
        }
        .min_box .banner:nth-of-type(1){
            background: url('img/1.jpg') no-repeat center/100% 100%;
        }
        .min_box .banner:nth-of-type(2){
            background: url('img/2.jpg') no-repeat center/100% 100%;
        }
        .min_box .banner:nth-of-type(3){
            background: url('img/3.jpg') no-repeat center/100% 100%;
        }
        .min_box .banner:nth-of-type(4){
            background: url('img/4.jpg') no-repeat center/100% 100%;
        }


JS代码:


 

// 1.获取元素
    var oBtn_l = document.getElementsByClassName("btn_l")[0];
    var oBtn_r = document.getElementsByClassName("btn_r")[0];
    var aLi = document.getElementsByClassName("red");
    var oBox = document.getElementById("box");
    var oBanner = document.getElementById("banner");
    var index = 0;
    var timer;
    function clear() {
        for (var i = 0; i <aLi.length;i++){aLi[i].className = "red"}aLi[index].className = "red blue";}//右键点击事件oBtn_r.onclick = function(){next();}functionnext(){index ==3?index = 0:index++;oBanner.style.left = -(index*500)+"px";clear();}//左键点击事件oBtn_l.onclick = function(){index ==0?index = 3:index--;oBanner.style.left = -(index*500)+"px";clear();}//四个点for(vari = 0;i< aLi.length; i++) {        aLi[i].a = i;
        aLi[i].onclick = function () {
            index = this.a;
            oBanner.style.left = -(index * 500) + "px";
            clear();
        }
    }
    // 添加定时器
    timer = setInterval(next, 1000);
    // 鼠标移入时,清除定时器    
    oBox.onmouseover = function () {
        clearInterval(timer);
    }
    // 鼠标移出时
    oBox.onmouseout = function () {
        timer = setInterval(next, 1000);
    }


总结: 这里实现轮播图的效果和前面两种的主要区别在于对图片的命名没有要求。然后通过改变小盒子相对于大盒子的左偏移量来改变显示的图片。


视频讲解链接:
https://www.bilibili.com/video/BV1Kg4y1q7Lr/

相关文章
|
2月前
|
前端开发
在Webpack配置文件中,如何配置loader以处理其他类型的文件,如CSS或图片
在Webpack配置文件中,通过设置`module.rules`来配置loader处理不同类型的文件。例如,使用`css-loader`和`style-loader`处理CSS文件,使用`file-loader`或`url-loader`处理图片等资源文件。配置示例:在`rules`数组中添加对应规则,指定`test`匹配文件类型,`use`指定使用的loader。
|
13天前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
85 24
|
1天前
|
JavaScript 前端开发
【Vue.js】监听器功能(EventListener)的实际应用【合集】
而此次问题的核心就在于,Vue实例化的时机过早,在其所依赖的DOM结构尚未完整构建完成时就已启动挂载流程,从而导致无法找到对应的DOM元素,最终致使计算器功能出现异常,输出框错误地显示“{{current}}”,并且按钮的交互功能也完全丧失响应。为了让代码结构更为清晰,便于后续的维护与管理工作,我打算把HTML文件中标签内的JavaScript代码迁移到外部的JS文件里,随后在HTML文件中对其进行引用。
19 8
|
20天前
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
26天前
|
JavaScript
时尚简洁的js轮播图特效插件
这是一款时尚简洁的js轮播图特效插件。该轮播图采用es6语法制作,底部带缩略图和描述信息。图片和描述信息在切换时同步滑动。
|
21天前
|
JavaScript 容器
jquery和CSS3图片排序过滤搜索插件
Filterizr是一款jquery和CSS3图片排序过滤插件。它可以对一组图片进行排序,按条件过滤和按关键字搜索。并在显示结果时使用指定的CSS3动画过渡效果。
25 2
|
21天前
|
JavaScript
jquery和CSS3响应式轮播图插件jcSlider
jcSlider是一款jquery和CSS3响应式轮播图插件。jcSlider使用CSS3过渡动画,它可以和animate.css完美结合,生成60多种轮播图过渡动画效果。
|
1月前
纸屑飘落生日蛋糕场景js+css3动画特效
纸屑飘落生日蛋糕CSS3动画特效是一款js+css3制作的全屏纸屑飘落,生日蛋糕点亮庆祝动画特效。
47 3
|
2月前
|
编解码 前端开发 UED
探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用
本文深入探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用。通过实际案例分析和注意事项的讨论,旨在帮助开发者更好地理解和运用媒体查询,提升移动端用户体验。
50 4
|
2月前
|
JavaScript 前端开发 容器
jQuery多功能滑块插件r-slider.js
r-slider.js是一款jQuery多功能滑块插件。使用该插件,可以制作出滑块、开关按钮、进度条、向导步骤等多种效果。
47 5
下一篇
开通oss服务