JSdemo:上下滚动的轮播图封装

2024-04-28 04:08
文章标签 封装 滚动 轮播 jsdemo

本文主要是介绍JSdemo:上下滚动的轮播图封装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记录一下,方便后续用。


<!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>Demo</title><style>* {padding: 0;margin: 0;}#box {position: relative;width: 100px;height: 30px;overflow: hidden;}#box ul {position: absolute;top: 0;left: 0;width: 100%;height: 400%;}#box ul li {width: 100%;height: 25%;font-size: 20px;}</style>
</head>
<body><div id="box"><ul><li>111</li><li>222</li><li>333</li></ul></div><script>const box = document.getElementById('box')const ulTips = document.getElementsByTagName('ul')[0]let numTips = 0let objTips = {4: ['444', '999'],5: ['555', '1020'],29: ['2901', '2902'],30: ['3001', '3002']}ulTips.children[0].innerHTML = objTips[4][0]ulTips.children[1].innerHTML = objTips[4][1]ulTips.children[2].innerHTML = objTips[5][0]const liTipsCopy = ulTips.children[0].cloneNode(true)ulTips.appendChild(liTipsCopy)console.log('ulTips: ', ulTips.offsetTop, ulTips.children[0].offsetHeight)function animate(obj, target, callback) {clearInterval(obj.timer)function move() {var step = (target - obj.offsetTop) / 10;step = step > 0 ? Math.ceil(step) : Math.floor(step)if(obj.offsetTop == target) {clearInterval(obj.timer);callback&&callback();}obj.style.top = obj.offsetTop + step + 'px'}obj.timer = setInterval(move, 40)}setInterval(() => {if(numTips === ulTips.children.length - 1) {ulTips.style.top = 0numTips = 0} else {numTips++}animate(ulTips, -numTips * ulTips.children[0].offsetHeight)}, 1500)</script>
</body>
</html>

这篇关于JSdemo:上下滚动的轮播图封装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942296

相关文章

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

axios全局封装AbortController取消重复请求

为什么? 问题:为什么axios要配置AbortController?防抖节流不行吗? 分析: 防抖节流本质上是用延时器来操作请求的。防抖是判断延时器是否存在,如果存在,清除延时器,重新开启一个延时器,只执行最后一次请求。节流呢,是判断延时器是否存在,如果存在,直接return掉,直到执行完这个延时器。事实上,这些体验感都不算友好,因为对于用户来说,得等一些时间,尤其是首次请求,不是那么流畅

Python利用qq邮箱发送通知邮件(已封装成model)

因为经常喜欢写一些脚本、爬虫之类的东西,有需要通知的时候,总是苦于没有太好的通知方式,虽然邮件相对于微信、短信来说,接收性差了一些,但毕竟免费,而且支持html直接渲染,所以,折腾了一个可以直接使用的sendemail模块。这里主要应用的是QQ发邮件,微信关注QQ邮箱后,也可以实时的接收到消息,肾好! 好了,废话不多说,直接上代码。 # encoding: utf-8import lo

线程封装,互斥

文章目录 线程封装线程互斥加锁、解锁认识接口解决问题理解锁 线程封装 C/C++代码混编引起的问题 此处pthread_create函数要求传入参数为void * func(void * )类型,按理来说ThreadRoutine满足,但是 这是在内类完成封装,所以ThreadRoutine函数实际是两个参数,第一个参数Thread* this不显示 解决方法: 第

示例:推荐一个基于第三方开源控件库DataGridFilter封装的FilterColumnDataGrid,可以像Excel拥有列头筛选器

一、目的:基于第三方开源控件库DataGridFilter封装的FilterColumnDataGrid,可以像Excel拥有列头筛选器,感兴趣的可以去下方链接地址查看开源控件库地址。本控件封装的目的在于将第三方库的皮肤和样式封装到皮肤库中可统一设置样式,同时生成nuget方便调用 二、效果如下 三、环境 VS2022 Net7 四、使用方式 1、安装nuget包:H.Con

C语言封装获取本机IP地址的程序

文章目录 0.概要1. 设计2. 完整的代码`ip_address.h``ip_address.c``main.c`编译命令执行结果 0.概要 本文介绍用C语言编写一个函数来获取本机的IP地址。 1. 设计 将获取IP地址的逻辑封装到一个独立的函数中,并定义一个结构体来存储IP地址和接口名称。 将获取IP地址的逻辑封装到一个函数中,该函数遍历本机的所有网络接口并获取其IP

H264 视频文件 帧格式 传输封装等 杂碎

rfc3984  Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1.  按照RFC3984协议实现H264视频流媒体 nalu单元 包起始 0x 00 00 00 01 H.264 NAL格式及分析器 http://hi.baidu.com/zsw%5Fdavy/b ...

vue3实现无缝滚动列表-vue3-seamless-scroll

vue3-seamless-scroll-无缝滚动         vue3-seamless-scroll,顾名思义是应用在vue3项目中,在Vue3项目中难免会遇到让列表无缝滚动的需求,本篇文章介绍了关于vue3项目中如何实现表格内容无缝滚动及其属性的使用,需要的朋友可以参考一下。         官网介绍:支持Vite2.0,支持服务端打包,目前组件支持上下左右无缝滚动,单

C# 唯一性进程的方法封装(Winform/WPF通用)

C#唯一进程封装 C# 唯一性进程的方法封装 public class UniqueProcess{/// <summary>/// 焦点切换指定的窗口,并将其带到前台/// </summary>/// <param name="hWnd"></param>/// <param name="fAltTab"></param>[DllImport("user32.dll")]public st