纯JS打造循环间隔滚动公告栏

用js来实现公告栏文字上下滚动效果,可添加新数据(简单) 用js实现公告栏滚动效果,定时获取并添加新数据至旧滚动列表尾部,并继续滚动,滚动至遍历列表最后则暂时暂停滚动 阅读详情
<html>
<head>
    
<title>纯JS打造循环间隔滚动公告栏</title>
    
<style type="text/css">
        div#scrollDiv
        
{
            width
: 100%; 
            height
: 30px; 
            position
: relative; 
            left
: 0px; 
            top
: 0px; 
            border
: #ccc 1px solid; 
            overflow
: hidden;
        
}

        
        div#scrollDiv div
        
{
            position
: absolute; 
            text-align
: center; 
            width
: 100%; 
            height
: 30px; 
            line-height
: 30px; 
            top
: 0px;
        
}

        
        div#divContent
        
{
            position
: absolute;
            text-align
: left;
            background-color
: #606066;
        
}

    
</style>
</head>
<body>
<div id="scrollDiv">
</div>

<script language="javascript" type="text/javascript">
var notice = new Array();
var scrollDiv = $("scrollDiv");
var oTime;
var moveSize = 100;
var timeSpace = 2500;
var nowNoticeIndex;

var notice1 = "内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一内容一";
var notice2 = "内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二内容二";
var notice3 = "内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三内容三";
var notice4 = "内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四内容四";
var notice5 = "内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五内容五";
var notice6 = "内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六内容六";
var notice7 = "内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七内容七";

notice[
0] = new Array("notice test1 --coding by pippe pippe@163.com", notice1, 500, 400);   //标题,内容,打开的DIV宽度,打开的DIV高度
notice[1] = new Array("notice test2 --coding by pippe pippe@163.com", notice2, 100, 600);
notice[
2] = new Array("notice test3 --coding by pippe pippe@163.com", notice3, 400, 300);
notice[
3] = new Array("notice test4 --coding by pippe pippe@163.com", notice4, 700, 500);
notice[
4] = new Array("notice test5 --coding by pippe pippe@163.com", notice5, 100, 500);
notice[
5] = new Array("notice test6 --coding by pippe pippe@163.com", notice6, 600, 400);
notice[
6] = new Array("notice test7 --coding by pippe pippe@163.com", notice7, 300, 600);

function $(controlId)
{
    
return document.getElementById(controlId);
}


function setScroll(previousNoticeIndex)
{
    
var noticeLen = notice.length;
    
if (noticeLen == 0)
    
{
        
return;
    }

    
    nowNoticeIndex 
= previousNoticeIndex < noticeLen - 1 ? previousNoticeIndex + 1 : 0;
    setEnter(nowNoticeIndex);
    setQuit(previousNoticeIndex);
    oTime 
= setTimeout("setScroll(" + nowNoticeIndex + ")", timeSpace);
}


//进入主区
function setEnter(noticeIndex)
{
    
var enterDiv = $("div" + noticeIndex);
    
if (enterDiv)
    
{
        
var thisLeft = parseInt(enterDiv.style.left);
        
if (thisLeft > enterDiv.enterLeft + moveSize)
        
{
            enterDiv.style.left 
= (thisLeft - moveSize) + "px";
        }

        
else
        
{
            enterDiv.style.left 
= enterDiv.enterLeft;
            
return;
        }

    }

    
else
    
{
        enterDiv 
= document.createElement("div");
        scrollDiv.appendChild(enterDiv);
        enterDiv.id 
= "div" + noticeIndex;
        enterDiv.style.left 
= enterDiv.parentNode.clientWidth + "px";
        enterDiv.style.cursor 
= "pointer";
        enterDiv.innerHTML 
= notice[noticeIndex][0];
        enterDiv.onmouseover 
= function() {divMouseOver()};
        enterDiv.onmouseout 
= function() {divMouseOut()};
        enterDiv.onclick 
= function() {divClick()};
        enterDiv.enterLeft 
= (enterDiv.parentNode.clientWidth - enterDiv.clientWidth) /2;
        enterDiv.quitLeft 
= -enterDiv.clientWidth;
    }

    setTimeout(
"setEnter(" + noticeIndex + ")", 20);
}


//离开主区
function setQuit(noticeIndex)
{
    
var quitDiv = $("div" + noticeIndex);
    
if (quitDiv)
    
{
        
var thisLeft = parseInt(quitDiv.style.left);
        
if (thisLeft > quitDiv.quitLeft + moveSize)
        
{
            quitDiv.style.left 
= (thisLeft - moveSize) + "px";
        }

        
else
        
{
            quitDiv.style.left 
= quitDiv.quitLeft;
            quitDiv.parentNode.removeChild(quitDiv);
            quitDiv 
= null;
            
return;
        }

    }

    setTimeout(
"setQuit(" + noticeIndex + ")", 20);
}


//鼠标经过停止切换
function divMouseOver()
{
    clearTimeout(oTime);
}


//鼠标离开继续切换
function divMouseOut()
{
    oTime 
= setTimeout("setScroll(" + nowNoticeIndex + ")", timeSpace);
}


var divContent;
var aimWidth, aimHeight, aimLeft, aimTop;
var saveWidth, saveHeight, saveLeft, saveTop;
var moveSpace = 50;
var resizeSpace = 20;
var isClose = "open";  //内容区打开与否
//
点击标题显示内容
function divClick()
{
    
var screen_X = document.body.clientWidth;
    
var screen_Y = document.body.clientHeight;
    aimWidth 
= notice[nowNoticeIndex][2] ? parseInt(notice[nowNoticeIndex][2]) : 500;
    aimHeight 
= notice[nowNoticeIndex][3] ? parseInt(notice[nowNoticeIndex][3]) : 500;
    aimLeft 
= (screen_X - aimWidth) / 2;
    aimTop 
= (screen_Y - aimHeight) / 2;
    saveWidth 
= saveWidth ? saveWidth : 50;
    saveHeight 
= saveHeight ? saveHeight : 50;
    saveLeft 
= saveLeft ? saveLeft : (screen_X - saveWidth) / 2;
    saveTop 
= saveTop ? saveTop : (screen_Y - saveHeight) / 2;
    
//内容DIV未打开创建内容DIV
    if (!divContent)
    
{
        divContent 
= document.createElement("div");
        divContent.id 
= "divContent";
        divContent.style.left 
= (screen_X / 2) + "px";
        divContent.style.top 
= scrollDiv.clientHeight + "px";
        divContent.style.width 
= "50px";
        divContent.style.height 
= "50px";
        divContent.style.overflow 
= "auto";
        document.body.appendChild(divContent);
        isClose 
= "close";
    }

    
else
    
{
        isClose 
= "open";
    }

    divContent.style.filter 
= "alpha(opacity=50)";
    reSize();
}


//自动切换到合适位置及预订的大小
function reSize()
{
    
var nowWidth = parseInt(divContent.style.width);
    
var nowHeight = parseInt(divContent.style.height);
    
var nowLeft = parseInt(divContent.style.left);
    
var nowTop = parseInt(divContent.style.top);
    
var thisTimeSpace = 10;
    
//滚动到上次的位置及大小
    if (isClose == "close")
    
{
        
if (saveWidth > nowWidth + moveSpace || saveHeight > nowHeight + moveSpace || saveLeft > nowLeft + moveSpace || saveTop > nowTop + moveSpace || 
            saveWidth 
< nowWidth - moveSpace || saveHeight < nowHeight - moveSpace || saveLeft < nowLeft - moveSpace || saveTop < nowTop - moveSpace)
        
{
            divContent.style.width 
= saveWidth > nowWidth + moveSpace ? (nowWidth + moveSpace) + "px" : saveWidth < nowWidth - moveSpace ? (nowWidth - moveSpace) + "px" : saveWidth + "px";
            divContent.style.height 
= saveHeight > nowHeight + moveSpace ? (nowHeight + moveSpace) + "px" : saveHeight < nowHeight - moveSpace ? (nowHeight - moveSpace) + "px" : saveHeight + "px";
            divContent.style.left 
= saveLeft > nowLeft + moveSpace ? (nowLeft + moveSpace) + "px" : saveLeft < nowLeft - moveSpace ? (nowLeft - moveSpace) + "px" : saveLeft + "px";
            divContent.style.top 
= saveTop > nowTop + moveSpace ? (nowTop + moveSpace) + "px" : saveTop < nowTop - moveSpace ? (nowTop - moveSpace) + "px" : saveTop + "px";
            setTimeout(
"reSize()", thisTimeSpace);
            
return;
        }

        isClose 
= "open";
    }

    
//滚动到预定的位置及大小
    if (aimLeft > nowLeft + resizeSpace || aimLeft < nowLeft - resizeSpace)
    
{
        divContent.style.left 
= aimLeft > nowLeft + resizeSpace ? (nowLeft + resizeSpace) + "px" : aimLeft < nowLeft - resizeSpace ? (nowLeft - resizeSpace) + "px" : aimLeft + "px";
        setTimeout(
"reSize()", thisTimeSpace);
        
return;
    }

    
    
if (aimTop > nowTop + resizeSpace || aimTop < nowTop - resizeSpace)
    
{
        divContent.style.top 
= aimTop > nowTop + resizeSpace ? (nowTop + resizeSpace) + "px" : aimTop < nowTop - resizeSpace ? (nowTop - resizeSpace) + "px" : aimTop + "px";
        setTimeout(
"reSize()", thisTimeSpace);
        
return;
    }

    
    
if (aimWidth > nowWidth + resizeSpace || aimWidth < nowWidth - resizeSpace)
    
{
        divContent.style.width 
= aimWidth > nowWidth + resizeSpace ? (nowWidth + resizeSpace) + "px" : aimWidth < nowWidth - resizeSpace ? (nowWidth - resizeSpace) + "px" : aimWidth + "px";
        setTimeout(
"reSize()", thisTimeSpace);
        
return;
    }

    
    
if (aimHeight > nowHeight + resizeSpace || aimHeight < nowHeight - resizeSpace)
    
{
        divContent.style.height 
= aimHeight > nowHeight + resizeSpace ? (nowHeight + resizeSpace) + "px" : aimHeight < nowHeight - resizeSpace ? (nowHeight - resizeSpace) + "px" : aimHeight + "px";
        setTimeout(
"reSize()", thisTimeSpace);
        
return;
    }

    
    saveWidth 
= aimWidth;
    saveHeight 
= aimHeight;
    saveLeft 
= aimLeft;
    saveTop 
= aimLeft;  //以左距为半程顶距,增大打开移动动画效果
    divContent.innerHTML = "<p style="font-weight: bold">" + notice[nowNoticeIndex][0] + "</p>" + notice[nowNoticeIndex][1] + "<br/> <a href="javascript:closeContent()">关闭</a>";
    divContent.style.filter 
= "alpha(opacity=100)";
}


function closeContent()
{
    
if (divContent)
    
{
        divContent.parentNode.removeChild(divContent);
        divContent 
= null;
    }

}


setScroll(
-1);
</script>
</body>
</html>

 

使用说明:

  1. 通过二维数组循环显示公告,如果为最后一条循环回第一条
  2. 循环效果为进入中间区为快速进入,停顿数秒(预设2.5秒)后快速离开中间区,同时下一条公告快速进入!
  3. 鼠标经过并且停留在公告区时,公告不进行切换,待鼠标离开后再次进行切换!
  4. 点击公告区可查看当前点击公告内容
    • 如果内容DIV当前未被打开,创建一个DIV,滑动路径分为两步,第一步滑动的宽度、高度、左距、顶距分别为上一次关闭的内容区的的宽度、高度、左距、左距,如果未打开过采用默认,第二步滑动同下一条一致
    • 如果内容DIV当前已打开,则调整大小及位置为将要打开的大小及位置,滑动并替换内容区主题和内容
    • 内容DIV可做成可移动,参考本人上次所写的移动DIV代码,此处不提供
js实现滚动功能---公告栏 最近找工作找的头昏脑胀,突然发现自己之前是多么的幸福。。。。 闲下来,充实我的博客 滚动公告栏 滚动公告栏,之前在毕设中就实现过一次,现在翻出来重新写一次。 原理:div公告栏(#part2)设置具体宽高,并设置溢出隐藏,这个地方就是我们公告展示的地方。在公告栏中有两个div,一个用来放置我们的公告内容,另一个用来填补当公告一滚动完时,中间空出来的一小块空间。 注:红色为公告栏,... 阅读详情

相关推荐

jQuery实现的上下滚动公告栏

用jQuery实现的上下滚动公告栏。主要用jQuery中的animate()方法和setInterval()实现的,代码简单使用。

html标题栏字符间隙,html布局有间隔问题

htmlasdfasdf[1,2,3,4]123css#dev-tool{width:100%;height:200px;position:fixed;bottom:0;left:0;background-color:#dedede}#dev-tool *{box-sizing:border-box}#dev-tool .tool-header{width:100%;height:20px;bac...

weixin_39862669的博客 356

SAP 财务快速记账之—G/L Item Fast Entry

SAP FICO 运维解决方案

lijinbao171022的博客 1647

HTML<marquee>标签实现滚动公告通知、广告的效果

每当实现页面的时候遇到动态效果,首先想到的就是用js、jQuery插件来实现,之前为了实现公告通知从下往上轮播,搜了不少插件,但是都没有合适的,无意中搜到一个html标签<marquee></marquee>,可以实现这个滚动效果。 说一下marquee的属性:   behavior设定滚动的方式:     alternate:来回滚动。    scroll...

3862

基于深度学习卷积神经网络的医学图像乳腺癌分类

一、项目背景与意义乳腺癌是女性最常见的恶性肿瘤之一,其早期发现和治疗对于提高患者的生存率和生活质量至关重要。然而,乳腺癌的诊断通常依赖于医生的经验和主观判断,这不仅耗时而且可能存在误差。近年来,深度学习技术特别是卷积神经网络(CNN)在图像处理领域取得了显著进展,为乳腺癌的自动分类提供了新的解决方案。本项目旨在利用深度学习卷积神经网络构建一套高效、准确的医学图像乳腺癌分类系统,辅助医生进行乳腺癌的早期诊断和治疗。二、技术实现。

2301_79810943的博客 976

告别手动改图!用Python+PyWin32驱动SolidWorks,实现参数自动化修改(保姆级避坑指南)

本文详细介绍了如何利用Python和PyWin32驱动SolidWorks实现参数自动化修改,提供从环境配置到API连接的工业级解决方案。通过实战案例和避坑指南,帮助工程师高效搭建自动化脚本工作流,显著提升设计效率。

weixin_30614109的博客 743

用HTML实现公告栏(滚动字幕)!!!

来自Asp.net精英论坛:bbs.1aspx.com                                                        ^_^大家好!我是***!^_^ ^_^欢迎来到我的个人空间!^_^ http://522428544.qzone.qq.com/" target="_blank">欢迎大家给我踩QQ空间!

5992

Blender建模:对于模型布线的一些思考

Blender布线中一些问题的总结和思考,主要讲述原理和解决方法。

baidu_38797690的博客 1825

html滚动信息栏,公告滚动.html

dodou-移动框架#scrollDiv{height:40px;line-height:40px;overflow:hidden; background:url(images/icon23.png) no-repeat 10px center; background-size: 24px; border-bottom:1px solid #ccc; padding-left: 44px;}#sc...

weixin_42364392的博客 598

[QT笔记]QTableView与QTableWidget表头设置实战对比

本文深入对比了QT开发中QTableView与QTableWidget在表头设置上的核心差异与实践方法。QTableWidget提供开箱即用的便捷API,适合快速开发;而QTableView遵循模型-视图架构,表头数据由模型管理,虽设置稍复杂但灵活性与扩展性更强。文章通过实战代码示例,详细解析了两种组件的适用场景、性能考量及常见避坑指南,帮助开发者根据项目需求做出高效选择。

weixin_29018335的博客 322

手把手教你模拟登录豆瓣并爬取个人书影音数据:从Cookie解析到反爬攻防实战

在开始写代码之前,先明确我们需要的工具。:建议用3.10以上版本,方便使用一些新特性(如match语句)httpx:比requests更现代,支持HTTP/2,异步性能强,连接池复用好:解析HTML,语法简单,容错性强selenium:仅用于处理登录时的滑块验证(模拟真人)pandas:最终数据清洗和导出Excel/CSVretrying:自动重试机制,应对临时封禁:随机UA,降低特征lxml:作为BeautifulSoup的解析器,速度快为什么不只用requests?

2201_76125261的博客 577

告别卡顿:基于CSS Transition的Vue高性能跑马灯组件设计与实现

本文详细介绍了基于CSS Transition的Vue高性能跑马灯组件设计与实现,解决传统setInterval方案在移动端卡顿问题。通过硬件加速、动态时间计算和无限循环技术,实现丝滑流畅的滚动效果,适用于电商、新闻等高频场景,显著提升用户体验和性能表现。

weixin_42558257的博客 306

20251121更新纷玩岛

【代码】20251121更新纷玩岛。

猫敷雪 1019

html内容循环向上滚动效果,Jquery实现无缝向上循环滚动列表的特效

效果呈现整个列表间隔设定的时间向上移动一个item的高度html结构:title1title2title3item1item1item1item2item2item2item2item2item2实现思路:获得js-slide-list下第一个li元素的高度,对它的height或marginTop进行一个从有到无的动画变化,代码如下:var doscroll = function(){var $p...

weixin_39935092的博客 491

爬虫反爬:一文掌握 BotBrowser 的原理和使用(能绕过很多验证码的指纹浏览器)

BotBrowser是使用经过修改的Chromium内核(修改Chromium的C++源代码)的隐形浏览器,可靠地绕过Cloudflare、Shape、PerimeterX、Datadome、Akamai、Kasada、hCaptcha和reCAPTCHA。BotBrowser是一个跨平台的自动化工具,它重新定义了web自动化。专为爬虫、RPA(机器人流程自动化)和 Web 测试设计。与 Puppeteer/Selenium 不同,它通过无头模式(Headless)和API 级控制。

数据知道的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

web复习(三):js实现公告栏效果,间歇性滚动展示

使用js实现:公告栏间歇性展示效果:思想,使用js操作,ul的scrollTop,并配合setTimeout和setInterval实现循环间歇滚动代码:如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

都市桃源 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HTML-间歇循环滚动

实现滚动播放 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"/&gt; &lt;title&gt; 间歇循环滚动&lt;/title&gt; &lt;style&gt; #box{ height:240px; width:300px; marg

@point 1194

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

公示栏滚动js

公示栏滚动是指在网页上通过JavaScript来实现公示栏内容的滚动效果。可以使用JavaScript的setInterval()函数来实现定时循环滚动。 示例代码: <div id="announcement"> <ul> <li>公告1</li> <li>公告2</li> <li>公...

weixin_42610671的博客 181

html自动切换下一题,公告栏自动切换.html

公告栏切换#newslist {background: #f8f8f8;border: 1px solid silver;padding: 1px;height: 20px;line-height: 20px;width: 288px;}#contain {font-size: 12px;overflow: hidden;list-style: none;width: 288px;height: ...

weixin_34335039的博客 308

html折叠的公告栏,纯html上下翻滚效果公告板

循环停顿上下滚动#block2{height:23px;width:500px;border:#ccc 1px solid;font-size:12px;text-align:center;}#block2 ul{list-style:outside none none;height:17px;padding:3px 0;overflow:hidden;margin:0;}#block2 ul l...

weixin_28559803的博客 1025

公告栏文字上下滚动效果

var textRoll=function(){ var length = $('.jcPrice1 ul li').length; if(length>=4){ $('.jcPrice1 ul li:last') .css({'marginTop':'0rem','opacity': '0'}) .insertBefore('.j

JINQINGS的博客 3539

公告栏文本横向循环滚动

动画、js两种方式实现公告栏文本横向循环滚动

weixin_42230222的博客 1714

html5轮播 最新公告栏,如何用vue实现上下轮播公告栏,文字溢出时也能轮播

在网上搜到了相关代码,可是有个需求是如果文字溢出时也需要换行轮播,请问如何实现,现在的这个实现不了。。。只会一闪而过最新战报div, ul, li, span, img {margin: 0;padding: 0;display: flex;box-sizing: border-box;}.marquee {width: 100%;height: 50px;align-items: center;...

weixin_35718575的博客 513

jQuery实现滚动公告栏特效

效果:HTML:&lt;span class="new-notice"&gt;最新公告:&lt;/span&gt; &lt;div class="notice"&gt; &lt;ul&gt; &lt;li&gt; &lt;a href="#"&gt;&lt;span&gt;2018-5-31&lt;/span&

捕鱼麦大叔的博客 8126

11行代码实现滚动公告栏

使用JavaScript&amp;jQuery 效果图:   首先看HTML结构,css样式这里不再给出 &lt;div class="book_class"&gt; &lt;div id="dome"&gt; &lt;div id="dome1"&gt;

weixin_42886104的博客 6716

Web 版翻译者资料库

本项目是桌面版《翻译者资料库》的 Web 移植版,基于 Spring Boot 3.3、Thymeleaf、Bootstrap 5.3 与 MySQL 8.0 构建。它面向翻译写作提供资料、词汇、句库、文本工具、对照制作、查找、备份恢复及旧库迁移等功能,完整继承桌面版核心业务规则,支持一键启动与离线访问。

howard2005的专栏 147
上一篇: 纯JS控制DIV选择范围移动与复制
下一篇: 纯JS控制DIV选择范围移动与复制 改进版
pippe
博客等级 码龄19年 22粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值