js文字滚动效果,html如何实现文字滚动

  js文字滚动效果,html如何实现文字滚动

  操作环境:windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。

  怎么用javascript实现文字滚动?

  js实现文字滚动效果

  在过去,边肖已经向您介绍了一些常用的js动画效果。在这里,我想介绍一个可能不常用的动画效果。动画效果和文字有关,虽然不常用,但几乎每个人都看过。

  相信大家都是用酷狗音乐或者网易云音乐来搜索和听音乐的。时间久了,他们一定会在歌词页面看到歌词滚动的效果。这个动画效果和原来一样,但是和这些音乐歌词有些不同,增加了文字垂直排列和滚动的效果。

  在介绍之前,我们先来学习一些单词垂直排列的方式:

  写模式属性

  1.价值:

  (1)写入模式:水平-tb 垂直-rl 垂直-lr lr-tb tb-rl

  (2)兼容书写:-WebKit-writing-mode:horizontal-TB vertical-RL vertical-LR LR-TB t b-RL

  (注:IE中lr-tb和tb-rl不兼容)

  默认值:正常

  适用于除表-行-组、表-列-组、表-行和表-列之外的所有元素。

  继承:是

  动画:没有

  计算值:特定值

  2.写作模式的价值介绍

  (1)水平-tb:水平方向自上而下书写。即左-右-上-下(类似IE私值lr-tb)

  (2)垂直-rl:垂直方向从右向左的书写风格。即上-下-右-左(类似于IE私值tb-rl)

  (3)垂直-lr:垂直方向从左到右的书写风格。也就是从上到下从左到右

  (4)lr-tb:左右,上下。对象的内容从左向右水平排列,最后一行在前一行的下方。所有的字形都是垂直向上的。罗马语系(IE)使用这种布局

  (5)tb-rl:上下左右。对象的内容从上到下、从右到左垂直排列。后一条垂直线在前一条垂直线的左侧。全角字符(6)垂直向上,半角字符如拉丁字母或片假名顺时针旋转90度。这种布局通常用于东亚语言(IE)

  html:

  body style= font-size:12px;

  section class=topBox

  p class=topBoxTxt

  ul class=txtBox id=txtBox

  /ul

  /p

  /部分

  脚本类型= text/JavaScript src= index . js /script

  脚本

  (函数(win){

  //文本水平排列并滚动。

  //hor();

  //水平(0);

  //文本垂直排列并滚动

  $(.txt box’)。addClass( txt box _ 4 );

  ver();

  垂直(0);//移动终端适配

  var doc=win.documentvar docEl=doc.documentElementvar tid函数refreshRem() {

  var width=docel . getboundingclientrect()。宽度if(宽度768) {

  宽度=768;

  } var rem=宽度/7.5;

  docel . style . font size=rem px ;

  docel . style . font size=rem px ;

  docel . style . font size=rem px ;

  }

  win.addEventListener(resize ,function() {

  clear time out(tid);

  tid=setTimeout(refreshRem,300);

  },假);

  win.addEventListener(pageshow ,函数(e) {

  如果(e.persisted) {

  clear time out(tid);

  tid=setTimeout(refreshRem,300);

  }

  },假);

  refresh rem();

  })(窗口);/script/bodycss:

  正文,html{宽度:100%;身高:100%;位置:相对;背景:# 232226;溢出-y:自动;溢出-x:隐藏;}.机顶盒,topBoxTxt{宽度:100%;高度:自动;位置:相对;}.topbox txt { text-align:center;高度:自动;

  颜色:# fff字体大小:0.36雷姆;填充顶部:55px}.txt box { width:5.6 rem;身高:5.2雷姆;边距:0自动;溢出-y:滚动;}。txtBoxli{不透明度:0.5;身高:0.74雷姆;}。txtBoxli:第一个孩子{ padding-top:60px;} .txtboxli。热色{不透明度:1;}.txt box _ 4 { width:4.6 rem;身高:7.5雷姆;溢出-x:自动;空白:nowrap显示:块;}.txtBox_4li{写入模式:t b-rl;书写模式:垂直-rl;-WebKit-writing-mode:vertical-rl;高度:0;行高:0.75雷姆;自动换行:断字;}.txt box _ 4li { width:0.4 rem;文本对齐:居中;保证金:0 0.1元;显示:内嵌表格;位置:相对;}index.js:

  var freq=10//滚动频率定义变量分数=9/10;//水平文字高亮显示行在歌词显示区域中的固定位置百分比var frac=3/10;//垂直文字高亮显示行在歌词显示区域中的固定位置百分比var timer=true//定时器var num=-1;//当前行下标定义变量时间;//滚动距离var eul=文档。getelementbyid(“txt box”);var lis=[

  {offset:3000, text :我总是轻描淡写告诉你我的愿望},

  {offset:6000, text :也给你千言万语都说不尽的目光},

  {offset:9000, text :这世界总有人在忙忙碌碌寻宝藏},

  {offset:12000, text :却误了浮世骄阳也错过人间万象},

  {offset:15000, text :古城里长桥上},

  {offset:18000, text :人如海车成行},

  {offset:21000, text :你笑得像光芒},

  {offset:24000, text :蓦然把我照亮},

  {offset:27000, text :风轻扬夏未央},

  {offset:30000, text :林荫路单车响},

  { 偏移量:33000,文本:原来所谓爱情},

  {offset:36000, text :是这模样},

  {offset:39000, text:}

  ]var count=lis。长度% 7% 5;//文字水平排列滚动函数hor(){

  for(var I=0;长度;I){ var Eli=文档。createelement(“Li”);

  eli.innerText=lis[i].文本;

  eul。appendchild(伊莱);

  } for(var j=0;jcountj){ var Eli=document。createelement(“Li”);

  伊莱。innertext=

  eul。appendchild(伊莱);

  }

  }水平功能(行号){

  普通(线号,水平);var scrollTopvar EP=eul。儿童[行号];如果(30ep。offsettopeul。客户身高*分数){

  scrollTop=ep.offsetTop

  } else if(EP。offsettop(eul。滚动高度。客户身高*(1-小数))){

  滚动顶部=eul。滚动高度。客户身高;

  }否则{

  滚动顶部=EP。offsettop=eul。客户身高*分数;

  } //如用户拖动滚动条导致当前显示行超出显示区域范围,下一行直接定位到当前显示行

  如果(eul。滚动顶部(滚动顶部eul。客户身高*分数) (eul。滚动顶部eul。客户端高度*分数)滚动顶部){

  eul。滚动顶部=滚动顶部;

  }否则{

  var step=数学。ceil(数学。ABS(eul。scroll top-scroll top)/(time/freq));

  scrollT(eul.scrollTop,scrollTop,step);

  }

  }函数scrollT(crt,dst,step){

  如果(数学。ABS(CRT-dst)步骤){ return

  } if(crt dst){

  eul.scrollTop=step

  crt=步长;

  }否则{

  eul。向上滚动-=一步;

  CRT-=step;

  }

  setTimeout(scrollT.bind(this,crt,dst,step),freq);

  };//文字垂直排列滚动函数版本(){

  控制台。(var I=0;长度;I){ var Eli=文档。createelement(“Li”);

  eli.innerHTML=lis[i].文本;

  eul。appendchild(伊莱);if(eli.innerText.length15){

  伊莱。风格。margin bottom=(15-Eli。内部文本。长度)" em ";

  }

  } for(var j=0;jcountj){ var Eli=document。createelement(“Li”);

  伊莱。innertext=

  eul。appendchild(伊莱);

  }

  }垂直功能(行号){

  普通(线号,垂直);var scrollLeftvar EP=eul。儿童[行号];如果(EP。偏移左eul。客户端宽度* frac){

  向左滚动=0;

  } else if(EP。向左偏移(eul。滚动宽度。客户端宽度*(1-frac))){

  向左滚动=eul。滚动宽度。客户端宽度;

  }否则{

  向左滚动=EP。左偏移。客户端宽度* frac

  } //如用户拖动滚动条导致当前显示行超出显示区域范围,下一行直接定位到当前显示行

  如果(eul。向左滚动(向左滚动。客户端宽度* frac) (eul。向左滚动eul。客户端宽度* frac)向左滚动){

  eul。向左滚动=向左滚动;

  }否则{

  var step=数学。ceil(数学。ABS(eul。向左滚动-向左滚动)/(时间/频率));

  滚动(eul。scrollLeft,向左滚动,步进);

  }

  }函数滚动(CRT、dst、step){

  如果(数学。ABS(CRT-dst)步骤){ return

  } if(crt dst){

  eul.scrollLeft=step

  crt=步长;

  }否则{

  eul。向左滚动-=一步;

  CRT-=step;

  }

  setTimeout(滚动。bind(this,crt,dst,step),freq);

  }通用功能(行号,fn){

  if (lineno==0) {

  时间=lis[行号]。偏移;

  }否则{

  时间=lis[行号]。偏置-lis[线号-1]。偏移;

  }

  timer=setTimeout(fn.bind(this,lineno 1),time);

  num=lineno//若滚动到最后一行,则从头开始,并把每一行文字均取消高亮

  if(行号==lis。length-1){ for(var I=0;我(尤指儿童).长度-1;i ){

  儿童[我]。setAttribute(class , );

  }

  行号=0;

  timer=setTimeout(fn.bind(this,lineno),time);

  }如果(第0行){

  eul.children[lineno-1].setAttribute(class , );

  } var EP=eul。儿童[行号];

  ep.setAttribute(class , hot color );

  }推荐学习: 《javascript基础教程

  以上就是怎么用爪哇岛描述语言实现文字滚动的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: