原生js实现跑马灯效果,鼠标放下可以停止跑动

article/2025/6/27 6:20:50

js原生代码跑马灯效果纯js代码如下:

1.首先html的内容(里面图片自己可以换,li里面也可以填文字)

  <div>       <ul><li>呵呵呵呵呵3</li>           <li>叽叽叽叽叽4</li>            <li>悠悠呦悠悠5</li>            <li>哎哎哎哎哎6</li>            <li><img src="img/pic/d2.png" alt=""></li><li></li>                            			               <li></li>            <li><img id='img1' src="img/pic/z1.png"></li><li><img src="img/pic/j1.gif" alt=""><img src="img/pic/j1.gif" alt=""><img src="img/pic/j1.gif" alt=""></li>       </ul>    </div>

2.下面是我CSS设计代码如下:

<style>        
* {       margin: 0;            padding: 0;       }                
body {            height: 690px;       }                
div {           width: 400px;           height: 100%;           overflow: hidden;           border: 1px solid red;            margin: 20px auto;            background-color: cadetblue;        }               ul {            list-style: none;           width: 100%;           height: 120%;            margin-top: 0;            position: relative;           background-image: url("img/pic/b1.png");           background-size: cover;        }                ul li {            width: 100%;           height: 90px;           font-size: 20px;           line-height: 90px;           text-align: center;           transition: all 1s;cursor: pointer;        }                li:hover {   color: burlywood;      }               img {            margin-left: 10px;        }    </style>

3.下面是重点js代码(里面我写了好多注释,供你查看)

 window.onload = function() {          var s = 0;          var text = document.querySelector("ul"); //获取ul因为需要改变他要动var li = document.querySelector("li"); //获取li因为要知道他的高       var lis; //声明一个全局变量            var id; //这个是定时器要用           console.log(li.offsetHeight);            var bbt = li.offsetHeight; //获取li的高度           add(); //这是我自己封装的跑马灯的方法()           function add() {               id = setInterval(function() { //首先声明定时器                  s -= 1; //全局变量本来是零//每次让他减10;                   if (Math.abs(s) >= bbt) { //如果他的s值的绝对值比li的高还大就执行下面的方法                s = 0; //把他s赋值为0;                      var li = document.querySelector('li'); //获取li元素,现在默认选择的就是第一个li                     var ppt = li.cloneNode(true); //然后复制这个当前的li。                      text.removeChild(li); //删除第一个li                       text.appendChild(ppt); //删除后再添加他,实现一值循环的思想                       text.style.marginTop = s + "px"; //改变ul的外上边距的距离为0; }                    text.style.marginTop = s + "px"; //这一步也是改变ul的外上边距的距离实现往上动的效果             }, 10); //0.01秒一动           }text.onmouseenter = function() { //当我们鼠标放在了ul上面               lis = document.querySelectorAll('li'); //首先获取现在里面所有的li元素               for (var i = 0; i < lis.length; i++) { //循环遍历li伟数组                   lis[i].onmouseenter = function() { //循环给li绑定鼠标放下的事件                        for (var i = 0; i < lis.length; i++) { //这一点是排他思想,首先让全部的li字体为20                             lis[i].style.fontSize = '20px';                        }                        clearInterval(id); //放到了li上面清除定时器                        this.style.fontSize = '25px'; //让你放上去的li字体放大                   }                }            }           text.onmouseleave = function() { //当我们鼠标离开ul                for (var i = 0; i < lis.length; i++) { //首先排他一下,让所有字体都回到原来的大小                    lis[i].style.fontSize = '20px';                };               setTimeout(function() { //0.3秒后执行下面的跑马灯效果!                   add();               }, 300);           }}

4.嗯这就是完整的js代码了
效果如下这是静态图片


http://chatgpt.dhexx.cn/article/kWHoxppG.shtml

相关文章

unity拖拽UI生成Cube并跟随鼠标移动,放置点可放下

代码&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI;public class DragCreate : MonoBehaviour {public GameObject Cube;public GameObje…

JavaScript的拖拽事件。

在浏览器可以随意的拖拽&#xff0c;我们来看下怎么实现&#xff1f; 我们具体分析一下步骤&#xff1a; 第一步&#xff1a;鼠标选中需要拖拽的地方&#xff0c;鼠标按下。&#xff08;需要使用事件onmousedown&#xff09; 第二步&#xff1a;鼠标按下后&#xff0c;我们接着…

html修改鼠标手势,css要怎么设置鼠标手势?

在CSS中&#xff0c;可以使用cursor属性来设置鼠标手势。下面本篇文章就来给大家介绍一下cursor属性。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。 cursor属性定义了鼠标指针放在一个元素边界范围内时所用的光标形状。有时我们需要…

java 鼠标响应_java小程序中鼠标事件的响应处理

如何在小程序中实现鼠标响应&#xff1f; public class Hello extends Applet implements MouseListener{ public void init(){ addMouseListener(this); } public void mouseEntered(MouseEvent e){ au.play(); setBackground(Color.blue); } public void mouseExited(MouseEv…

html修改鼠标手势,css设置鼠标手势的方法

css设置鼠标手势的方法 相对于传统HTML的表现而言&#xff0c;CSS能够对网页中的对象的位置排版进行像素级的精确控制&#xff0c;支持几乎所有的字体字号样式&#xff0c;下面小编给大家整理了css设置鼠标手势的方法&#xff0c;供大家参阅。 属性名&#xff1a;cursor 属性值…

鼠标拖动生成画框

需求&#xff1a;鼠标按下拖动生成一个画框 注意点&#xff1a; div 的left和top&#xff1a;如果鼠标当前位置>鼠标起始位置&#xff0c;则为鼠标起始位置&#xff08;鼠标往右拉&#xff09;&#xff1b;如果鼠标当前位置<鼠标起始位置&#xff0c;则为鼠标当前位置(…

QT 实现鼠标拖动(drag)和放下(drop)代码(图形操作四)

拖动的对象&#xff1a; #include "outlistitem.h" #include "ui_outlistitem.h"OutListItem::OutListItem(QWidget *parent) :QWidget(parent),ui(new Ui::OutListItem) {ui->setupUi(this); }OutListItem::~OutListItem() {delete ui; }void OutList…

放下鼠标 全键盘定义你的浏览器

在linux上用过vim的朋友相信都被这个编辑器惊艳到了吧, 但是它只是在linux系统中存在而且是在字符操作界面。但是如果将这种可以全键盘的操作搬到windows上这样的图形界面又是怎样令人去感到惊艳呢&#xff1f; 本文介绍的插件是基于谷歌和火狐的&#xff0c;它可以使你在很大的…

外企工作日常:全英文CrossTalk反串讲-讲前紧张,讲后淡定

起因&#xff1a; 在三周之前我接到了一个任务&#xff0c;更准确讲是我自己“作死”主动领取了一个更复杂的任务。这个任务包含了三个相关联的需求。这个需求说简单也简单&#xff0c;说复杂也复杂&#xff5e; 简单在&#xff1a;就是更改一下更新token时间的一个逻辑&am…

linux周六串讲

esc. //粘贴复制上一条命令的参数 cat /etc/resolv.conf //查看DNS地址 route -n //查看网关 hostname //临时修改主机名 hostnamectl set-hostname 名称 //永久修改主机名 ssh root192.168.10.233 //用windows远程的格式&#xff0c;在CMD窗口输入这个命令 …

【Linux】Linux指令串讲

大家好&#xff0c;今天要开启一个新的专题&#xff1a;Linux 今天的内容是指令还有一些基本的Linux知识补充 由于Linux的知识很难明确写出分类&#xff0c;所以目录就不会做的特别详细完全 喜欢的小伙伴点赞收藏一下不迷路哦 目录 1.目录 2.文件 3.路径 1.目录 1.创建目录…

kafka 串讲:架构模型、角色功能梳理

kafka 串讲&#xff1a;架构模型、角色功能梳理 kafka 的 what why how&#xff0c;先有一个粗略宏观的理解 rabbitmq、各种 mq 的技术选型、横向对比 首先&#xff0c;kafka 是一个消息中间件。我们从一个本质的点聊起&#xff0c;我们有一个系统 service&#xff0c;如果这…

【视频理解】论文串讲

视频理解论文串讲 2020-视频理解综述-A Comprehensive Study of Deep Video Action Recognition2014-CVPR-Large-scale Video Classification with Convolutional Neural Networks2014-NIPS-Two-Stream Convolutional Networks for Action Recognition in Videos2015-CVPR-Beyo…

李沐论文精度系列之八:视频理解论文串讲

文章目录 一 、前言二、 DeepVideo&#xff08;IEEE 2014&#xff09;2.1 模型结构2.2 实验结果2.3 总结 三、双流网络及其变体3.1 Two-Stream&#xff08;NeurIPS 2014&#xff09;3.1.1 简介3.1.2 改进工作 3.2 Two stream LSTM&#xff08;CVPR 2015 &#xff09;3.2.1 模型…

【Java】JVM 知识串讲

1. JVM 是什么 JVM 是 Java 虚拟机的简称&#xff0c;我们在下载 Java 运行环境时&#xff08;jre&#xff09;&#xff0c;就已经包含了 JVM 了&#xff0c;JVM 是 Java实现跨平台的最核心的部分&#xff0c;所有的 Java 程序会首先被编译为 .class 的类文件&#xff0c;这种…

视频理解论文串讲——学习笔记

文章目录 DeepVideoTwo-StreamBeyond-short-SmippetsConvolutional FusionTSN C3DI3DNon-localR&#xff08;21&#xff09;DSlowFast Timesformer 本文是对视频理解领域论文串讲的笔记记录。 一篇相关综述&#xff1a;Yi Zhu, Xinyu Li, Chunhui Liu, Mohammadreza Zolfaghari…

CGB2202串讲-java复习

java基础&#xff1a; day01&#xff1a; 1&#xff1a;java的开发环境&#xff1a; 编译器&#xff1a;.java源文件&#xff0c;编译成.class的字节码文件 运行期&#xff1a;jvm加载并运行.class字节码文件 2&#xff1a;名词解释&#xff1a; jvm&#xff1a; 加载并运行.cl…

我的论文串讲「一」

文章目录 [Done]2022-arXiv-It’s DONE Direct ONE-shot learning without training optimizationAbstractIntroductionRelated workMethodologyImplementation and DatasetResults and Discussion [Phase]2021-SPIE-Deep neural networks to improve the dynamic range of Zer…

多模态串讲(上)

多模态的学习在最近几年异常火爆&#xff0c;除了普通的多模态学习&#xff0c;比如视觉问答&#xff0c;图文检索等,其实之前讲的所有这种Language Guided Detection&#xff0c;或者Language Guided Segmentation&#xff0c;这些任务都是多模态的&#xff0c;还有最近火的文…

C++【引用】——串讲

【引用】——串讲&#xff08;视频89-94&#xff09; Note: i.视频为黑马程序员C视频&#xff0c;系列文章为视频听课笔记; ii.引用不仅包含定义及简单应用&#xff0c;在类与对象…中也有涉及&#xff1b; iii.难度指数&#xff1a; iv.不论变量、函数名、标识符形式怎样复杂…