首页 > 其他分享 >04 CSS 轮播图无缝滚动

04 CSS 轮播图无缝滚动

时间:2024-07-21 18:25:19浏览次数:14  
标签:box 滚动 轮播 04 wrapper height ul CSS 200px

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .box {
            width: 600px;
            height: 200px;
            padding: 10px;
            margin: 20px auto;
            border: 1px solid #ccc;
        }

        .wrapper {
            width: 600px;
            height: 200px;
            position: relative;
            overflow: hidden;
        }

        .box img {
            width: 300px;
            height: 200px;
            display: block;
        }

        .box ul {
            width: 600%;
            height: 200px;
            position: absolute;
            left: 0px;
        }

        .box li {
            list-style: none;
            float: left;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="wrapper">
            <ul class="imgs">
                <li>
                    <img src="./imgs/a.jpg" alt="">
                </li>
                <li>
                    <img src="./imgs/b.jpg" alt="">
                </li>
                <li>
                    <img src="./imgs/c.jpg" alt="">
                </li>
                <li>
                    <img src="./imgs/d.jpg" alt="">
                </li>
            </ul>
        </div>

    </div>
    <script>
        // 需求分析
        // 我要写一个构造函数 构造函数生成一个对象可以根据我的css选择器
        // 把我指定的元素进行无缝滚动
        // 当我的鼠标放入的时候滚动停止
        // 鼠标移出继续滚动
        class SwiperLoop {
            constructor(selector) {
                // 记录无缝滚动的容器
                let container = document.querySelector(selector)
                // 包裹滚动层的盒子
                this.wrapper = container.querySelector('.wrapper')
                console.log(this.wrapper)
                // 实例对象上有一个记录滚动的ul
                this.ul = container.querySelector('ul')
                this.liS = this.ul.children
                this.timer = null
                this.init()
            }
            init() {
                for (let i = 0; i < 2; i++) {
                    let newLi = this.liS[i].cloneNode(true)
                    this.ul.appendChild(newLi)
                }
                this.move()
                this.addMouseEnterEvent()
                this.addMouseLeaveEvent()
            }

            move() {
                this.timer = setInterval(() => {
                    this.ul.style.left = this.ul.offsetLeft - 2 + 'px'
                    if (this.ul.offsetLeft <= -1200) {
                        this.ul.style.left = 0
                    }
                }, 20)
            }

            addMouseEnterEvent() {
                // console.log(this.wrapper)
                this.wrapper.onmouseenter = () => {
                    clearInterval(this.timer)
                }

            }

            addMouseLeaveEvent() {
                this.wrapper.onmouseleave = () => {
                    this.move()
                }
            }
        }
        new SwiperLoop('.box')
    </script>
</body>

</html>

标签:box,滚动,轮播,04,wrapper,height,ul,CSS,200px
From: https://blog.csdn.net/m0_64904350/article/details/140549196

相关文章

  • Ubuntu18.04 安装 Cuckoo Sandbox (第二部分 安装沙盒)
    Ubuntu18.04安装CuckooSandbox(第二部分安装沙盒)0x00初步查看虚拟机环境依据cuckoo官网首先,有必要先查看虚拟机此时的python版本,gcc版本我们看到Ubuntu18.04本身支持的是python2.7版本,因此使用该虚拟机会比使用20版更加便利,cuckoo只支持python2.7版本,Ubuntu自带的pyth......
  • 389.权志龙明星主题网页 大学生期末大作业 Web前端网页制作 html5+css+js
    欢迎光临仙女的网页世界!这里有Web前端网页制作的各行各业的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这么好的知识学习、技术交流的平台,让我们在这里相遇,小伙伴们,来吧,让我们一起开启Web前端网页制作的奇妙之旅!说起Web前端,大学开启这扇技术之门以来,一切起始于兴趣爱好和......
  • 04 ES6中对象的简写
    在ES6中,对象字面量的书写方式进行了一些简化,使得对象的创建更加简洁。以下是ES6中对象简写的几种形式:属性值缩写:当对象的属性名和属性值的变量名相同时,可以省略属性值,只写属性名。//ES5constname='Alice';constage=25;constperson={name:name,a......
  • Ubuntu18.04安装Cuckoo Sandbox(第一部分 安装Ubuntu虚拟机)
    Ubuntu18.04安装Cuckoo沙盒目前最新版是24版,但是24版与20版的安装经过实践都存在一定困难,可以去Ubuntu官网查看两者的区别,经过实践是Ubuntu16.0版本安装最简便,但是我这里使用的是Ubuntu18.04版本。0x00安装Ubuntu18.04首先去官网下载光盘文件,通过VM安装虚拟机。在VM......
  • ubuntu 20.04 部署elastic stack
    8.x后ES不在需要自行准备JDK环境,部署的服务包含ES、Kibana、Logstash,使用二进制方式部署,为了提高安全性,加密logstash、kibana及其他客户端到ES间的通信。1、准备工作1.1、es无法使用root用户启动useradd-m-s/bin/bashesuser1.2、配置必要的内核参数,否则会启动失败vm.m......
  • 【Dison夏令营 Day 25】用Python写个2048
    在本文中,我们将用python代码和逻辑来设计一款你经常在智能手机上玩的2048游戏。如果您对该游戏不熟悉,强烈建议您先玩一下该游戏,以便了解其基本功能。如何玩2048.NET?1.有一个4*4的网格,可以填入任何数字。一开始,随机填入两个2的单元格。其余单元格为空。我们......
  • 虚拟机(ubuntu22.04)空间不足,进行硬盘扩容
    1、编辑虚拟机设置(外部操作)关闭虚拟机编辑虚拟机设置---硬盘扩容虚拟机设置--->硬件--->改变磁盘大小--->点击<扩展>2、虚拟机内部磁盘重新分区(内部操作)开启虚拟机安装界面化的磁盘管理工具终端输入sudoaptinstallgparted终端输入sudogparted,打开该工具......
  • 1.3 CSS技术
     1.3CSS技术随着网页制作技术的不断发展,单调的HTML属性样式已经无法满足网页设计的需求。开发者往往需要更多的字体选择、更方便的样式效果、更绚丽的图形动画。CSS可以在不改变原有HTML结构的情况下,增加丰富的样式效果,极大地满足了开发者需求。本节将详细讲解CSS技术的......
  • 代码随想录算法训练营第十五天 | 110.平衡二叉树、257. 二叉树的所有路径 、404.左叶
    110.平衡二叉树题目:.-力扣(LeetCode)思路:后序遍历计算高度代码:/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*......
  • 解决.Net Framework3.5安装报错0x80070490
    .NETFramework是Windows平台下的软件框架,包括1.0~4.8多个版本,向下兼容。Win7默认安装的是3.5版,早期Win10版本默认安装的4.6版,本文分享如何在Win10和Win11上离线安装.NETFramework3.5,并解决安装报0x80070490找不到元素的错误。问题描述在早些年,有的软件安装时强制验证.NETFr......