分享一个图像轮播效果

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

话不多说,先看效果:
在这里插入图片描述
根据图片的播放,页面背景会被替换为当前图片。
在这里插入图片描述
老规矩,源码自己拿:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="module" src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.esm.js"></script>
    <script nomodule src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            height: 100vh;
            display: grid;
            place-items: center;
            overflow: hidden;
        }

        main {
            position: relative;
            width: 100%;
            height: 100%;
            box-shadow: 0 3px 10px rgba(0,0,0,0.3);
        }

        .item {
            width: 200px;
            height: 300px;
            list-style-type: none;
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            z-index: 1;
            background-position: center;
            background-size: cover;
            border-radius: 20px;
            box-shadow: 0 20px 30px rgba(255,255,255,0.3) inset;
            transition: transform 0.1s, left 0.75s, top 0.75s, width 0.75s, height 0.75s;

        &:nth-child(1), &:nth-child(2) {
                             left: 0;
                             top: 0;
                             width: 100%;
                             height: 100%;
                             transform: none;
                             border-radius: 0;
                             box-shadow: none;
                             opacity: 1;
                         }

        &:nth-child(3) { left: 50%; }
        &:nth-child(4) { left: calc(50% + 220px); }
        &:nth-child(5) { left: calc(50% + 440px); }
        &:nth-child(6) { left: calc(50% + 660px); opacity: 0; }
        }

        .content {
            width: min(30vw,400px);
            position: absolute;
            top: 50%;
            left: 3rem;
            transform: translateY(-50%);
            font: 400 0.85rem helvetica,sans-serif;
            color: white;
            text-shadow: 0 3px 8px rgba(0,0,0,0.5);
            opacity: 0;
            display: none;

        & .title {
              font-family: 'arial-black';
              text-transform: uppercase;
          }

        & .description {
              line-height: 1.7;
              margin: 1rem 0 1.5rem;
              font-size: 0.8rem;
          }

        & button {
              width: fit-content;
              background-color: rgba(0,0,0,0.1);
              color: white;
              border: 2px solid white;
              border-radius: 0.25rem;
              padding: 0.75rem;
              cursor: pointer;
          }
        }

        .item:nth-of-type(2) .content {
            display: block;
            animation: show 0.75s ease-in-out 0.3s forwards;
        }

        @keyframes show {
            0% {
                filter: blur(5px);
                transform: translateY(calc(-50% + 75px));
            }
            100% {
                opacity: 1;
                filter: blur(0);
            }
        }

        .nav {
            position: absolute;
            bottom: 2rem;
            left: 50%;
            transform: translateX(-50%);
            z-index: 5;
            user-select: none;

        & .btn {
              background-color: rgba(255,255,255,0.5);
              color: rgba(0,0,0,0.7);
              border: 2px solid rgba(0,0,0,0.6);
              margin: 0 0.25rem;
              padding: 0.75rem;
              border-radius: 50%;
              cursor: pointer;

        &:hover {
             background-color: rgba(255,255,255,0.3);
         }
        }
        }

        @media (width > 650px) and (width < 900px) {
            .content {
        & .title        { font-size: 1rem; }
        & .description  { font-size: 0.7rem; }
        & button        { font-size: 0.7rem; }
        }
        .item {
            width: 160px;
            height: 270px;

        &:nth-child(3) { left: 50%; }
        &:nth-child(4) { left: calc(50% + 170px); }
        &:nth-child(5) { left: calc(50% + 340px); }
        &:nth-child(6) { left: calc(50% + 510px); opacity: 0; }
        }
        }

        @media (width < 650px) {
            .content {
        & .title        { font-size: 0.9rem; }
        & .description  { font-size: 0.65rem; }
        & button        { font-size: 0.7rem; }
        }
        .item {
            width: 130px;
            height: 220px;

        &:nth-child(3) { left: 50%; }
        &:nth-child(4) { left: calc(50% + 140px); }
        &:nth-child(5) { left: calc(50% + 280px); }
        &:nth-child(6) { left: calc(50% + 420px); opacity: 0; }
        }
        }
    </style>
</head>
<body>
<main>
    <ul class='slider'>
        <li class='item' style="background-image: url('https://cdn.mos.cms.futurecdn.net/dP3N4qnEZ4tCTCLq59iysd.jpg')">
            <div class='content'>
                <h2 class='title'>"Lossless Youths"</h2>
                <p class='description'> Lorem ipsum, dolor sit amet consectetur
                    adipisicing elit. Tempore fuga voluptatum, iure corporis inventore
                    praesentium nisi. Id laboriosam ipsam enim.  </p>
                <button>Read More</button>
            </div>
        </li>
        <li class='item' style="background-image: url('https://i.redd.it/tc0aqpv92pn21.jpg')">
            <div class='content'>
                <h2 class='title'>"Estrange Bond"</h2>
                <p class='description'> Lorem ipsum, dolor sit amet consectetur
                    adipisicing elit. Tempore fuga voluptatum, iure corporis inventore
                    praesentium nisi. Id laboriosam ipsam enim.  </p>
                <button>Read More</button>
            </div>
        </li>
        <li class='item' style="background-image: url('https://wharferj.files.wordpress.com/2015/11/bio_north.jpg')">
            <div class='content'>
                <h2 class='title'>"The Gate Keeper"</h2>
                <p class='description'> Lorem ipsum, dolor sit amet consectetur
                    adipisicing elit. Tempore fuga voluptatum, iure corporis inventore
                    praesentium nisi. Id laboriosam ipsam enim.  </p>
                <button>Read More</button>
            </div>
        </li>
        <li class='item' style="background-image: url('https://images7.alphacoders.com/878/878663.jpg')">
            <div class='content'>
                <h2 class='title'>"Last Trace Of Us"</h2>
                <p class='description'>
                    Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tempore fuga voluptatum, iure corporis inventore praesentium nisi. Id laboriosam ipsam enim.
                </p>
                <button>Read More</button>
            </div>
        </li>
        <li class='item' style="background-image: url('https://theawesomer.com/photos/2017/07/simon_stalenhag_the_electric_state_6.jpg')">
            <div class='content'>
                <h2 class='title'>"Urban Decay"</h2>
                <p class='description'>
                    Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tempore fuga voluptatum, iure corporis inventore praesentium nisi. Id laboriosam ipsam enim.
                </p>
                <button>Read More</button>
            </div>
        </li>
        <li class='item' style="background-image: url('https://da.se/app/uploads/2015/09/simon-december1994.jpg')">
            <div class='content'>
                <h2 class='title'>"The Migration"</h2>
                <p class='description'> Lorem ipsum, dolor sit amet consectetur
                    adipisicing elit. Tempore fuga voluptatum, iure corporis inventore
                    praesentium nisi. Id laboriosam ipsam enim.  </p>
                <button>Read More</button>
            </div>
        </li>
    </ul>
    <nav class='nav'>
        <ion-icon class='btn prev' name="arrow-back-outline"></ion-icon>
        <ion-icon class='btn next' name="arrow-forward-outline"></ion-icon>
    </nav>
</main>
</body>
<script>
    const slider = document.querySelector('.slider');
    function activate(e) {
        const items = document.querySelectorAll('.item');
        e.target.matches('.next') && slider.append(items[0])
        e.target.matches('.prev') && slider.prepend(items[items.length-1]);
    }

    document.addEventListener('click',activate,false);
</script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/153518.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

划片机:半导体工艺精细化高效化的新里程碑

随着科技的飞速发展&#xff0c;半导体已经成为现代电子设备的基石&#xff0c;而半导体晶圆的划片机作为半导体制造的核心设备之一&#xff0c;其发展程度直接关系到半导体的质量和产量。近年来&#xff0c;博捷芯精密划片机以其在半导体划片机领域的卓越表现&#xff0c;引领…

几个测试接口的好工具,效率加倍~

作为一名后端程序员&#xff0c;一定要对自己写的接口负责&#xff0c;保证接口的正确和稳定性。因此&#xff0c;接口测试也是后端开发中的关键环节。 但我相信&#xff0c;很多朋友是懒得测试接口的&#xff0c;觉得这很麻烦。一般自己写的接口自己都不调用&#xff0c;而是…

抖音测试付费短视频:从短剧领域拓展到知识、娱乐全品类

11月16日&#xff0c;抖音开始测试短视频内容付费&#xff0c;即用户在观看创作者的内容时&#xff0c;部分内容需要付费解锁才能全部观看&#xff0c;涉及范围不仅包括此前已经进行付费试水的短剧领域&#xff0c;还拓展至知识、娱乐等几乎全品类内容&#xff0c;用户可按单条…

Linux进程之进程的状态简述

文章目录 1.百度搜索2.对进程状态的认识2.0创建状态2.1就绪状态2.2运行状态2.3阻塞状态2.4挂起状态 3.认识LinuxOS下的进程3.0进程状态的简述3.1了解R/S状态3.2D深度睡眠状态3.3信号/调试暂停状态3.4僵尸状态 1.百度搜索 2.对进程状态的认识 一个进程所具有的状态为操作系统的…

stm32f10系列--管脚被设置为输入模式时,对其进行输出操作将影响其输入功能

有时程序载入硬件&#xff0c;没有按代码执行&#xff0c;可能由于此。 1.欲完成功能&#xff1a; 结构&#xff1a;PA0管脚可以输出高低电平&#xff0c;控制LED灯的亮灭&#xff1b;PA1管脚作为输入&#xff0c;连接一头已经接地的switch开关。 逻辑&#xff1a;当开关闭合…

网络运维Day18

文章目录 环境准备导入数据确认表导入成功练习用表解析表格结构设计 查询语句进阶什么是MySQL函数常用功能函数数学计算流程控制函数查询结果处理 连接查询(联表查询)表关系什么是连接查询连接查询分类笛卡尔积内连接(INNER)外连接 子查询什么是子查询子查询出现的位置子查询练…

IEEE Standard for SystemVerilog—Chapter14. Clocking blocks

14.1 General This clause describes the following: — Clocking block declarations(时钟块声明) — Input and output skews(输入和输出偏斜) — Clocking block signal events(时钟块信号事件) — Cycle delays(周期延迟) — Synchronous events(同步事件) — Synchronous…

pytorch 安装 2023年

pytorch网址&#xff1a;https://pytorch.org/get-started/locally/ conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia我在自己电脑上用这个pip命令完全安装不了&#xff0c;只能用conda安装。复制上面提供的命令&#xff0c;在cmd中直接运…

在Linux安装Nginx Proxy Manager并结合内网穿透工具实现远程访问管理界面

文章目录 前言1. docker 一键安装2. 本地访问3. Linux 安装cpolar4. 配置公网访问地址5. 公网远程访问6. 固定公网地址 前言 Nginx Proxy Manager 是一个开源的反向代理工具&#xff0c;不需要了解太多 Nginx 或 Letsencrypt 的相关知识&#xff0c;即可快速将你的服务暴露到外…

北京筑龙:招商局“强管控”成就采购合规与效益统一

1872至2023&#xff0c;历时151年&#xff0c;跨越三个世纪。招商局集团&#xff0c;从洋务运动中国第一场“商战”挽回航运利权&#xff0c;到开辟中国首条近海商业航线和远洋商业航线&#xff1b;从独资开发中国第一个对外开放工业区&#xff0c;到开办中国第一家银行……敢为…

@Version乐观锁配置mybatis-plus使用(version)

1&#xff1a;首先在实体类的属性注解上使用Version import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.Versio…

EtherNET转Profibus网关使用欧姆龙PLC的配置方法

兴达易控EtherNET转Profibus网关&#xff08;XD-EPPB20&#xff09;是一款具有 Profibus 从站功能的通讯网关。EtherNET转Profibus网关主要功能是将 EtherNET/IP 设备接入到 PROFIBUS 网络中。 本网关连接到 Profibus 总线中做为从站使用&#xff0c;连接到 EtherNET/IP 总线中…

2023年亚太杯数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

微星迫击炮b660m使用intel arc a750/770显卡功耗优化方法

bios 优化: 1,开机后持续点击“delete”键直到进入微星bios。 2,点击右上角选择我们熟悉的中文。 3,点击Settings--->高级---> pcie/Pci子系统设置 4,Native PCIE Enable : Enabled Native Aspm:允许

nginx服务器配置http/2

nginx服务器配置http/2 文章目录 nginx服务器配置http/21.安装nginx2.ssl证书2.1 创建ssl证书 3.配置nginx3.1 配置http/2 4.保存配置文件5.重启nginx6.测试 1.安装nginx 如果你没有安装nginx&#xff0c;可以参考这里&#xff1a;nginx教程 2.ssl证书 如果你没有ssl证书&…

全国各区县日照时长数据,逐月数据均有!

今天给大家分享的是全国各区县日照时长月数据&#xff0c;包括不同月份不同地区的日照时长。这些数据可以帮助我们了解不同地区在不同月份的日照情况&#xff0c;为能源利用、农业生产和气候变化研究提供参考。 基本信息 数据名称: 全国各区县日照时长月数据 数据格式: shpex…

鸿蒙LiteOs读源码教程+向LiteOS中添加一个系统调用

本文分为2个部分&#xff1a;第1部分简要介绍如何读鸿蒙Liteos源码&#xff0c;第2部分是实验向LiteOS中添加一个系统调用的完整过程。 前置资料&#xff1a; imx6ull开发板使用方式详解 源码下载 编译运行简单程序 Ubuntu虚拟机使用鸿蒙LiteOs操作系统常见错误汇总 一、鸿…

免费的网页采集器工具推荐有哪些

免费好用的全自动网页采集器工具有哪些&#xff1f; 本文精心挑选出三款主流优秀的数据采集器软件&#xff0c;列举出它们的差异和各自的优缺点&#xff0c;希望能帮助您找到最符合您需求的采集工具&#xff01; 目录 1. 火车头采集器工具 火车头采集器软件优点 不足之处 …

杨辉三角00

题目链接 杨辉三角 题目描述 注意点 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和 解答思路 从第一行开始&#xff0c;根据前一行计算该行的值 代码 class Solution {public List<List<Integer>> generate(int numRows) {List<List<…

5.0 Java API

API&#xff08;Application Programming Interface&#xff09;指的是应用程序编程接口&#xff0c;API可以让编程变得更加方便简单。Java也提供了大量API供程序开发者使用&#xff0c;即Java API。Java API指的就是JDK提供的各种功能的Java类库&#xff0c;如之前所讲的Array…
最新文章