javascript歌词滚动(歌词滚动怎么实现的)

本文目录一览:

javascript 模拟Marquee文字向左均匀滚动代码

可以实现匀速、无缝、加链接以及其它的修饰效果,本代码就是实现了这一功能,让文字从右至右平滑滚动,滚动宽度、高度、速度均可以设定。

Js文字向左运动

var

marqueewidth=350

var

marqueeheight=22

var

speed=5

var

marqueecontents=’欢迎光临脚本之家

网页特效栏目,精品特效全收罗!’

if

(document.all)

document.write(”+marqueecontents+”)

function

regenerate(){

window.location.reload()

}

function

regenerate2(){

if

(document.layers){

setTimeout(“window.onresize=regenerate”,450)

intializemarquee()

}

}

function

intializemarquee(){

document.cmarquee01.document.cmarquee02.document.write(”+marqueecontents+”)

document.cmarquee01.document.cmarquee02.document.close()

thelength=document.cmarquee01.document.cmarquee02.document.width

scrollit()

}

function

scrollit(){

if

(document.cmarquee01.document.cmarquee02.left=thelength*(-1)){

document.cmarquee01.document.cmarquee02.left-=speed

setTimeout(“scrollit()”,100)

}

else{

document.cmarquee01.document.cmarquee02.left=marqueewidth

scrollit()

}

}

window.onload=regenerate2

[Ctrl+A

全选

注:如需引入外部Js需刷新才能执行]

BY2的 javascript歌词是什么啊

你还是走了 我有点不舍 该说点什么

我不是哭了 是阳关折射

眼睛也红了颜色

我不懂 为什么快乐 像冰淇淋口中

融化的特别冲动

不懂为什么树叶 冷后的时候

旧的要放手

我还舍不得 你不要走

走 走够了没

重来也不曾一个人生活

原来不想再值得拥有

我还在接受 你写过的感

永远才不落空

成长的存在 没有过瘀伤 像苹果一样青涩

懂不懂得快乐像冰淇淋口中 融化的特别冲动

不懂为什么树叶 冷后的时候 旧的要放手

我还舍不得 你不要走 重来也不曾一个人生活 能不能让时间回头 我还舍不得你不要走 重来也不曾一个人生活 原来不想再值得拥有

JavaScript如何滚动显示歌词呢?

第一步:将你所有的歌词放在一个层里面,每句有相等的间隔,但是层的高度设置为你想显示的那么高,溢出设置隐藏,设置为绝对定位

第二步:设置动画:让歌词的层每次间隔一定的时间向上运动setInterval函数,还可以设置透明度渐变

第三步:判断是否到达末尾然后再重头开始实现循环

求一个js歌词同步的代码

htmlhead

meta http-equiv=Content-Type content=text/html; charset=utf-8

title林俊杰 – 完美新世界/title

style

!–

.div

{

width:460px;

height:200px;

overflow-y:scroll;

padding-top:80px;

text-align:left;

padding-left:100px;

line-height:25px;

font-size:13px;

padding-bottom:50px;

}

/style

script language=”javascript”

var scrollt=0;

var tflag=0;//存放时间和歌词的数组的下标

var lytext=new Array();//放存汉字的歌词

var lytime=new Array();//存放时间

var delay=10;

var line=0;

var scrollh=0;

function getLy()//取得歌词

{

var ly=”[00:00]完美新世界.[00:10]作曲:林俊杰.[00:14]支持JJ.[00:18]LRC歌词制作:鸿恒之心.[00:44]是你一束光 琥珀色远方.[00:50]回忆被穿肠 伤口被遗忘.[00:56]泪水跟着眼眶 流出一道方向.[01:02]牵引着你我的希望.[01:11][02:52][03:50]手联手 用心连接宇宙.[01:16][02:57]夜光倾透 寒风里微颤抖.[01:22]古老的记忆 不断的寻觅.[01:28][03:09]因为爱要坚持到最后.[01:34][03:15]手联手 抚平心灵伤口.[01:39][03:21][03:55]寒风颤抖 还是要往前走.[01:45][03:26][04:01]当太阳再升起 用爱解冻大地.[01:51][03:32]重建完美新世界 重现你和我.[03:45]Yeah ~ Yeah ~[02:25]什么无偿 说不出模样.[02:31]我是迎着光 逆着风飘荡.[02:37]你说暮色苍茫 空气开始摇晃.[02:44]不用害怕 走吧.[02:46]希望就在不远地方.[03:03]古老的记忆 依然不断的寻觅.[04:07]重现完美新世界.[04:14]只有你和我.[00:06][00:22][01:08][01:33][02:00][02:517][03:14][03:43][03:49][04:19] 歌词很给力噢!.[04:20]music end…….”

return ly;

}

function show(t)//显示歌词

{

var div1=document.getElementById(“lyr”);//取得层

document.getElementById(“lyr”).innerHTML=” “;//每次调用清空以前的一次

if(tlytime[lytime.length-1])//先舍弃数组的最后一个

{

for(var k=0;klytext.length;k++)

{

if(lytime[k]=ttlytime[k+1])

{

scrollh=k*25;//让当前的滚动条的顶部改变一行的高度

div1.innerHTML+=”font color=red style=font-weight:bold”+lytext[k]+”/fontbr”;

}

else if(tlytime[lytime.length-1])//数组的最后一个要舍弃

div1.innerHTML+=lytext[k]+”br”;

}

}

else//加上数组的最后一个

{

for(var j=0;jlytext.length-1;j++)

div1.innerHTML+=lytext[j]+”br”;

div1.innerHTML+=”font color=red style=font-weight:bold”+lytext[lytext.length-1]+”/fontbr”;

}

}

function scrollBar()//设置滚动条的滚动

{

if(document.getElementById(“lyr”).scrollTop=scrollh)

document.getElementById(“lyr”).scrollTop+=1;

if(document.getElementById(“lyr”).scrollTop=scrollh+50)

document.getElementById(“lyr”).scrollTop-=1;

window.setTimeout(“scrollBar()”,delay);

}

function getReady()//在显示歌词前做好准备工作

{

var ly=getLy();//得到歌词

//alert(ly);

var arrly=ly.split(“.”);//转化成数组

for(var i=0;iarrly.length;i++)

sToArray(arrly[i]);

sortAr();

/*for(var j=0;jlytext.length;j++)

{

document.getElementById(“lyr”).innerHTML+=lytime[j]+lytext[j]+”br”;

}*/

scrollBar();

}

function sToArray(str)//解析如“[02:02][00:24]没想到是你”的字符串前放入数组

{

var left=0;//”[“的个数

var leftAr=new Array();

for(var k=0;kstr.length;k++)

{

if(str.charAt(k)==”[“)

{

leftAr[left]=k;

left++;

}

}

if(left!=0)

{

for(var i=0;ileftAr.length;i++)

{

lytext[tflag]=str.substring(str.lastIndexOf(“]”)+1);//放歌词

lytime[tflag]=conSeconds(str.substring(leftAr[i]+1,leftAr[i]+6));//放时间

tflag++;

}

}

//alert(str.substring(leftAr[0]+1,leftAr[0]+6));

}

function sortAr()//按时间重新排序时间和歌词的数组

{

var temp=null;

var temp1=null;

for(var k=0;klytime.length;k++)

{

for(var j=0;jlytime.length-k;j++)

{

if(lytime[j]lytime[j+1])

{

temp=lytime[j];

temp1=lytext[j];

lytime[j]=lytime[j+1];

lytext[j]=lytext[j+1];

lytime[j+1]=temp;

lytext[j+1]=temp1;

}

}

}

}

function conSeconds(t)//把形如:01:25的时间转化成秒;

{

var m=t.substring(0,t.indexOf(“:”));

var s=t.substring(t.indexOf(“:”)+1);

s=parseInt(s.replace(/\b(0+)/gi,””));

if(isNaN(s))

s=0;

var totalt=parseInt(m)*60+s;

//alert(parseInt(s.replace(/\b(0+)/gi,””)));

if(isNaN(totalt))

return 0;

return totalt;

}

function getSeconds()//得到当前播放器播放位置的时间

{

var t=getPosition();

t=t.toString();//数字转换成字符串

var s=t.substring(0,t.lastIndexOf(“.”));//得到当前的秒

//alert(s);

return s;

}

function getPosition()//返回当前播放的时间位置

{

var mm=document.getElementById(“MediaPlayer1”);

//var mmt=;

//alert(mmt);

return mm.CurrentPosition;

}

function mPlay()//开始播放

{

var ms=parseInt(getSeconds());

if(isNaN(ms))

show(0);

else

show(ms);

window.setTimeout(“mPlay()”,100)

}

window.setTimeout(“mPlay()”,100)

function test()//测试使用,

{

alert(lytime[lytime.length-1]);

}

/script

/head

body onLoad=”getReady()”

object id=”MediaPlayer1″ width=”460″ height=”68″ classid=”CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95″

codebase=””

align=”baseline” border=”0″ standby=”Loading Microsoft Windows Media Player components…”

type=”application/x-oleobject”

param name=”FileName” value=””

param name=”ShowControls” value=”1″

param name=”ShowPositionControls” value=”0″

param name=”ShowAudioControls” value=”1″

param name=”ShowTracker” value=”1″

param name=”ShowDisplay” value=”0″

param name=”ShowStatusBar” value=”1″

param name=”AutoSize” value=”0″

param name=”ShowGotoBar” value=”0″

param name=”ShowCaptioning” value=”0″

param name=”AutoStart” value=”1″

param name=”PlayCount” value=”0″

param name=”AnimationAtStart” value=”0″

param name=”TransparentAtStart” value=”0″

param name=”AllowScan” value=”0″

param name=”EnableContextMenu” value=”1″

param name=”ClickToPlay” value=”0″

param name=”InvokeURLs” value=”1″

param name=”DefaultFrame” value=”datawindow”

embed src=”” align=”baseline” border=”0″ width=”460″ height=”68″

type=”application/x-mplayer2″

pluginspage=”;sbp=mediaplayerar=mediasba=plugin”

name=”MediaPlayer” showcontrols=”1″ showpositioncontrols=”0″

showaudiocontrols=”1″ showtracker=”1″ showdisplay=”0″

showstatusbar=”1″

autosize=”0″

showgotobar=”0″ showcaptioning=”0″ autostart=”1″ autorewind=”0″

animationatstart=”0″ transparentatstart=”0″ allowscan=”1″

enablecontextmenu=”1″ clicktoplay=”0″ invokeurls=”1″

defaultframe=”datawindow”

/embed

/object

div id=lyr class=div歌词加载中……/div

div align=”center”/div

p align=”center” /p

p align=”center” /p

/body

/html

JS/JAVASCRIPT 选中文本框内的文字 让滚动条滚动到选中文字的位置

function func(){

var textarea = document.getElementById(“textarea”);

//首先移动光标到所选文字位置,滚动条自动滚动

MoveCursortoPos(‘textarea’ , 30 );

//再选中文字

textarea.setSelectionRange(30,32);//选中文本框内的文字

//textarea.scrollTop = textarea.scrollHeight;//滚动到底部

//想要修改成只滚动到 选中文字 的位置应该怎么写?

}

//设置光标位置

function MoveCursortoPos(id,pos){//定位光标到某个位置

var obj = document.getElementById(id); //获得元素

pos = pos ?pos :obj.value.length;

if (obj.createTextRange) {//IE浏览器 IE浏览器中有TextRange 对body,textarea,button有效

var range = obj.createTextRange(); //创建textRange

range.moveStart(“character”, pos); //移动开始点,以字符为单位

range.collapse(true);//没有移动结束点直接 折叠到一个点

range.select();//选择这个点

} else {//非IE浏览器

obj.setSelectionRange(obj.value.length, pos);

}

obj.focus();

}

在JavaScript或者jQuery中怎么实现让歌词滚动

把歌词放在

ul

lilrc/li

/ul

这里

改变ul的top或者margin-top就可以实现滚动了,当然ul的父元素

设置

overflow:hidden;

height:

等因素

看我做的音乐播放器

原创文章,作者:BPVUX,如若转载,请注明出处:https://www.506064.com/n/317735.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
BPVUXBPVUX
上一篇 2025-01-11 16:27
下一篇 2025-01-11 16:27

相关推荐

  • 使用JavaScript日期函数掌握时间

    在本文中,我们将深入探讨JavaScript日期函数,并且从多个视角介绍其应用方法和重要性。 一、日期的基本表示与获取 在JavaScript中,使用Date对象来表示日期和时间,…

    编程 2025-04-28
  • JavaScript中使用new Date转换为YYYYMMDD格式

    在JavaScript中,我们通常会使用Date对象来表示日期和时间。当我们需要在网站上显示日期时,很多情况下需要将Date对象转换成YYYYMMDD格式的字符串。下面我们来详细了…

    编程 2025-04-27
  • JavaScript中修改style属性的方法和技巧

    一、基本概念和方法 style属性是JavaScript中一个非常重要的属性,它可以用来控制HTML元素的样式,包括颜色、大小、字体等等。这里介绍一些常用的方法: 1、通过Java…

    编程 2025-04-25
  • CloneDeep函数在Javascript开发中的应用

    一、CloneDeep的概念 CloneDeep函数在Javascript中是一种深层克隆对象的方法,可以在拷贝对象时避免出现引用关系。使用者可以在函数中设置可选参数使其满足多种拷…

    编程 2025-04-25
  • JavaScript中的Object.getOwnPropertyDescriptors()

    一、简介 Object.getOwnPropertyDescriptors()是JavaScript中一个非常有用的工具。简单来说,这个方法可以获取一个对象上所有自有属性的属性描述…

    编程 2025-04-25
  • JavaScript保留整数的完整指南

    JavaScript是一种通用脚本语言,非常适合Web应用程序开发。在处理数字时,JavaScript可以处理整数和浮点数。在本文中,我们将重点关注JavaScript如何保留整数…

    编程 2025-04-25
  • JavaScript点击事件全方位指南

    一、click事件基础 click事件是最常用的鼠标事件之一,当元素被单击时触发。click事件适用于大多数HTML元素(<a>、<button>)和SVG…

    编程 2025-04-25
  • 详解JavaScript onclick事件

    一、onclick的基础知识 onclick事件是JavaScript中最常用的事件之一,它在用户点击某个HTML元素时触发。通常我们可以通过给元素添加一个onclick属性来绑定…

    编程 2025-04-25
  • JavaScript浅拷贝

    一、什么是浅拷贝 在JavaScript中,浅拷贝是一种将源对象的属性复制到目标对象中的方法。浅拷贝的实现方式有多种,包括直接赋值、Object.assign()、展开运算符、co…

    编程 2025-04-25
  • JavaScript 数组转成字符串

    一、数组转成字符串的基本操作 在 JS 中,将数组转成字符串是一项最基本但也最常见的操作之一。我们可以使用 Array 类型内置的 join() 方法实现。它将数组的元素连接成一个…

    编程 2025-04-25

发表回复

登录后才能评论