旋转木马案例

news2024/11/13 15:12:25

旋转木马

如果接口需要的数据格式和原始数据提供的格式有差异

不要去改接口方法 也不要改原始数据

做一层中间件(数据处理函数/方法)

在这里插入图片描述

<!DOCTYPE html>
<html lang="zh-cn">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title> 旋转木马 </title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    img {
      display: block;
    }

    html,
    body {
      height: 100%;
    }

    ul {
      list-style: none;
    }

    body {
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .slider-wrap {
      position: relative;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
    }

    .pic-list {
      position: relative;
      width: 1200px;
      height: 600px;
    }

    .pic-list li {
      position: absolute;
      box-shadow: 0 0 4px #222;
    }

    .pic-list li img {
      width: 100%;
      height: 100%;
    }

    .btn-wrap span {
      position: absolute;
      top: -150px;
      bottom: 0;
      margin: auto;
      z-index: 2;
      width: 120px;
      height: 240px;
      line-height: 240px;
      text-align: center;
      font-size: 80px;
      background-color: rgba(0, 0, 0, .4);
      cursor: pointer;
      border-radius: 8px;
    }

    .btn-wrap span.prev {
      left: -120px;
    }

    .btn-wrap span.next {
      right: -120px;
    }
  </style>
</head>

<body>
  <div class="slider-wrap">
    <ul class="pic-list">
      <li><img src="images/re1.jpg" alt=""></li>
      <li><img src="images/re2.jpg" alt=""></li>
      <li><img src="images/re3.jpg" alt=""></li>
      <li><img src="images/re4.jpg" alt=""></li>
      <li><img src="images/re5.jpg" alt=""></li>
    </ul>
    <div class="btn-wrap">
      <span class="prev"> &lt; </span>
      <span class="next"> &gt; </span>
    </div>
  </div>
  <script src="js/common.js"></script>

  <script>
    var posData = [
      {
        zIndex: 0,
        top: -120,
        left: 80,
        width: 400,
        height: 250,
      },
      {

        zIndex: 1,
        top: 0,
        left: 0,
        width: 600,
        height: 375,
      },
      {

        zIndex: 2,
        top: 80,
        left: 200,
        width: 800,
        height: 500,
      },
      {

        zIndex: 1,
        top: 0,
        left: 600,
        width: 600,
        height: 375,
      },
      {

        zIndex: 0,
        top: -120,
        left: 720,
        width: 400,
        height: 250,
      }
    ];
    var oPic = $('.pic-list')
    var aLi = oPic.children
    var oBtn = $('.btn-wrap')

    posData = format(posData)
    translate()

    var tapMap = {
      'prev': function () {
        posData.push(posData.shift())
      },
      'next': function () {
        posData.unshift(posData.pop())
      },
    }
    
    oBtn.addEventListener('click', function (e) {
      if(e.target.tagName.toLowerCase() === 'span'){
        if(tapMap[e.target.className] && typeof tapMap[e.target.className] === 'function'){
          tapMap[e.target.className]()
          translate()
        }
      }
    }, false)

    function format() {
      return posData.map(function (item, idx) {
        var newData = {}
        for(var key in item) {
          if(key === 'zIndex') {
            newData[key] = item[key]
            continue
          }
          newData[key] = item[key] + 'px'
        }
        return newData
      })
    }

    function format (data) {
      return data.map(item => ({ 
        ...Object.fromEntries(Object.entries(item).map(([key, val]) => [key, val + 'px'])), 
        zIndex: item['zIndex'] 
      }))
    }

    function translate() {
      posData.forEach(function (item, idx) {
        animate (aLi[idx], item)
      })
    }
  </script>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分销密文下单

背景 事情的经过就是今天早上一共下了10个单&#xff0c;然后就下不了单了。 如下图&#xff1a; 来到抖店后台显示什么解密额度已经用完了 所以&#xff0c;今天必须把困扰我很久的分销密文下单解决掉 操作 1688分销下单-逸淘订单 1 先关联商品 2 下单 首页导航栏--1688分…

重塑通信边界,基于ZYNQ7000 FPGA驱动的多频段多协议软件无线电平台

01、产品概述 本平台是基于高性能ZYNQ-7000系列中的XC7Z045处理器构建的多频段多协议软件无线电解决方案&#xff0c;集成了AD9364芯片——一款业界领先的1x1通道RF敏捷收发器&#xff0c;为无线通信应用提供了强大支持。其存储架构包括2路高速4GB DDR3内存、1路32GB EMMC存储以…

可信验证解释

学习目标&#xff1a;可信验证解释 可信验证是一种基于计算机技术和安全机制&#xff0c;用于确保系统、程序或数据的完整性和可信性的方法。以下是关于可信验证的详细解释&#xff1a;一、定义与原理 可信验证指的是利用计算机技术和安全机制&#xff0c;对系统、程序或数据…

MobaXterm工具

MobaXterm 是一个增强型的 Windows 终端。其为 Windows 桌面提供所有重要的远程网络终端工具&#xff08;如 SSH、X11、RDP、VNC、FTP、SFTP、Telnet、Serial、Mosh、WSL 等&#xff09;&#xff0c;和 Unix 命令&#xff08;如 bash、ls、cat、sed、grep、awk、rsync 等&#…

深度学习编码解码结构-以及kreas简单实现

图像分割中的编码解码结构&#xff08;Encoder-Decoder Model&#xff09;是一种广泛应用的网络架构&#xff0c;它有效地结合了特征提取&#xff08;编码&#xff09;和分割结果生成&#xff08;解码&#xff09;两个过程。以下是对图像分割中编码解码结构的详细解析&#xff…

写一个函数,返回参数二进制中 1 的个数

代码要求 输入一个整数n&#xff0c;输出该数32位二进制中为1的个数&#xff08;包括最高位的符号位&#xff09;&#xff0c;其中负数用补码表示 如&#xff1a;输入&#xff1a;15 &#xff08;15的二进制表示&#xff1a;0000 1111&#xff09; 输出&#xff1a;4 代码实…

音频demo:使用fdk-aac将PCM数据编码成aac数据

1、README a. 编译 编译demo 本demo是使用的开源项目fdk-aac将PCM数据编码成aac音频文件。由于提供的.a静态库是在x86_64的机器上编译的&#xff0c;所以默认情况下仅支持该架构的主机上编译运行。 $ make编译fdk-aac&#xff08;可选&#xff09; 如果想要在其他架构的CP…

20240709 每日AI必读资讯

&#x1f9e0;手把手教你如何打造《星际穿越》中的 TARS 机器人复制品&#xff01; - 一位名为 Charles Diaz 的开发者使用树莓派创建了一个完全功能的 TARS 复制品。 - 使用树莓派3B作为主控&#xff0c;配合Adafruit PCA-9685伺服驱动器&#xff0c;通过编写的步态控制程序…

【版面费优惠丨ACM独立出版丨接受全文摘要投稿】2024年生物医药和智能技术国际学术会议(ICBIT 2024,8月23-25)

“2024年生物医药和智能技术国际学术会议&#xff08;ICBIT 2024&#xff09;”拟定于2024年8月23-25日于珠海召开。近年来&#xff0c;智能技术已经逐渐走入生物医药领域&#xff0c;并在与生物医药领域的融合创新中凸显出巨大的发展潜力和社会价值。人工智能技术在生物医药领…

原创作品——教育课程界面设计

教育行业UI界面设计需直观易懂&#xff0c;确保学习者能迅速上手&#xff0c;减少认知负担。布局清晰&#xff0c;导航便捷&#xff0c;功能按钮和图标设计应符合教育场景&#xff0c;直接支持学习目标的达成&#xff0c;促进高效学习体验。 通过丰富的互动元素&#xff08;如拖…

面试题005-Java-JVM(上)

面试题005-Java-JVM(上) 目录 面试题005-Java-JVM(上)题目自测题目答案1. JVM由哪几部分组成&#xff1f;2. 运行时数据区中包含哪些区域&#xff1f;3. 栈和堆中分别存放什么数据&#xff1f;4. 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) &#xff1f;5. 堆空间的…

vue详解

目录 ​编辑 常用指令 v-for v-bind v-if & v-show v-if v-show v-on v-model Vue生命周期 ​编辑 Axios Axios使用步骤 Axios-请求方式别名 Vue简单案例 常用指令 指令:HTML标签上带有 v-前缀的特殊属性&#xff0c;不同的指令具有不同的含义&#xff0c;可…

股票数据分析(K线图、均值图、MACD图、RSI图)--股票日数据

数据 数据是上证指数日行情数据&#xff0c;股票代码000002.sz&#xff0c;原始数据shdata示例如下&#xff1a; 读取数据&#xff1a; import numpy as np import pandas as pd import mplfinance as mpf import matplotlib.pyplot as plt from datetime import datetime imp…

三、mysql-万字长文读懂mysql

mysql 三、 Mysql3.1 基础3.1.1 mysql执行流程-组成架构3.2 索引3.2.1 索引底层的数据结构与算法分类在创建表时,InnoDB 存储引擎会根据不同的场景选择不同的列作为索引B+树结构3.2.2 为什么 MySQL InnoDB 选择 B+tree 作为索引的数据结构3.2.2.1. 从磁盘角度出发3.2.2.2. 数据…

全志A527 T527 设置左右分屏修改为单屏幕,应用分屏改为单屏

1.前言 android13中,A527的系统设置变成,左边是一级菜单,右侧是二级菜单, 这样跟我们以前android7/8/9的布局是不一样的,我们需要将它修改为一级菜单,点进去才是二级菜单这种。 效果如下 2.系统设置实现分析 它这里使用的是google新出的embedding activity, 相关的知…

MHA Master High Availability

一、MHA工作原理和架构 MHA利用 SELECT 1 As Value 指令判断master服务器的健康性,一旦master 宕机,MHA 从宕机崩溃的master保存二进制日志事件&#xff08;binlog events&#xff09;识别含有最新更新的slave应用差异的中继日志&#xff08;relay log&#xff09;到其他的sla…

celery执行任务报错ValueError: not enough values to unpack

背景 在做用户注册模块的时候需要对手机号验证的过程进行优化&#xff0c;目前想到的方式是通过celeryrabbitmq的方式进行异步处理&#xff0c;选择使用celery是因为使用方便、性能好、可分布式部署。 环境信息 目前使用地win11容器化启动 rabbitmq:3.13.2 python:3.6.8 cel…

21. Java AQS 原理

1. 前言 本节内容主要是对 AQS 原理的讲解&#xff0c;之所以需要了解 AQS 原理&#xff0c;是因为后续讲解的 ReentrantLock 是基于 AQS 原理的。本节内容相较于其他小节难度上会大一些&#xff0c;基础薄弱的学习者可以选择性学习本节内容或者跳过本节内容。 了解什么是 AQ…

【目录】阅读须知!全博文、专栏大纲

首先要和大家说一下&#xff0c;博主的文章并不是想到哪里写到哪里&#xff0c;而是以整个大后端为主题&#xff0c;成体系的在写专栏&#xff0c;从和后端紧相关的计算机核心课程开始、到JAVA SE、JAVA EE、到数据库、MQ等各类中间件、再到业务场景、性能优化。当然也会涉及一…