最近单位的小同事问了一个问题,就是在页面底部的位置实现字体滚动的效果。若利用<marquee>进行滚动的话,必须等上一次滚动出屏幕才可以看到下一次进入的文字,这样的效果很不好,滚动区域时常会出现大片空白,用户体验不好。

为了解决这个问题,只能自己想办法了。我的想法是需要有两遍重复的文字,然后判断第一遍文字的位置从而适时引入第二段并将第一段的文字append到第二段文字的后面,以此类推。

<div id="scrollobj"

style="white-space:nowrap; width: 500px; overflow: hidden;  z-index: 120; position:absolute;background-color: red;">

<span style="position:relative;">2222222222222222222222222222222222222222222222222222222222222222222222222222222222222</span>

<span style="position:relative;">1111111111111111111111111111111111111111111111111111111111111111111111111111111111111</span>

</div>

var obj,top;

var zhixing=function scroll(){

var $=jQuery.noConflict();//避免$冲突

if(!obj)

{

obj=$("#scrollobj"); //div

//固定top的位置,每个span都一样;

top=obj.children("span:first").offset().top;

}

//获取第一个span的向左移动量

var a=obj.children("span:first").offset().left;

//第一个span的宽度

var awidth=obj.children("span:first").width();

//获取第二个span的向左偏移量

var b=obj.children("span:last").offset().left;

//第二个span的宽度

bwidth=obj.children("span:last").width();

//每次偏移量

var movey=35;

//如果内容在范围内则不需要滚动

if(obj.width()>(awidth+bwidth))

{

clearInterval(zhixing);//如果文字长度比div端,则不需要定时滚动

return false;

}

try{

//每次移动两个span,向左移动movey的值;

obj.children("span:first").offset({top:top,left:(a-movey)});

obj.children("span:last").offset({top:top,left:(b-movey)});

//如果第一个span超出scrollobj的左边线

if((Math.abs(a))>awidth)

{

//复制第一个newnode

var newnode=(obj.children("span:first")).clone(true);

//移除第一个span

obj.children("span:first").remove();

//将剩下的span(即第二个)看成第一个,并重置其偏移位置为0

obj.children("span:first").offset({top:top,left:0});

//设置newnode位置在第一个span之后

newnode.offset({top:top,left:(awidth+80)});

//追加newnode

newnode.appendTo(obj);

}

}catch(err)

{

console.log(err);

}

};

clearInterval(zhixing);

setInterval(zhixing,500);

js实现首尾相连的文字滚动效果相关推荐

  1. JS图片自动或者手动滚动效果(支持left或者up)

    JS图片自动或者手动滚动效果 在谈组件之前 来谈谈今天遇到搞笑的事情,今天上午接到一个杭州电话 0571-28001187 即说是杭州人民法院的 貌似说我用招商银行信用卡在今年的6月23日借了招商银行 ...

  2. msclass 文字滚动_【JS特效】不间断滚动效果通用类

    网上发现一个不错的js不间断滚动效果,今天来转载一下吧.这个js的作者应是崔永祥(因其博客已不存在,而无法确认),我这里只简单整理,只为笔记. ??? 需要通过样式,js来实现这个翻滚效果. ??? ...

  3. 页面实现文字滚动效果(跑马灯)

    页面的自动滚动效果,可由javascript来实现,但是今天无意中发现了一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制.使用ma ...

  4. html js 链接滚动效果,【JS特效】不间断滚动效果通用类

    网上发现一个不错的js不间断滚动效果,今天来转载一下吧.这个js的作者应是崔永祥(因其博客已不存在,而无法确认),我这里只简单整理,只为笔记. ??? 需要通过样式,js来实现这个翻滚效果. ??? ...

  5. HTML实现公告文字滚动效果

    效果图: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8 ...

  6. js、jQuery实现数字滚动效果

    一.效果(监听页面滚动使得超过屏幕的数字每次出现都有数字滚动效果) 二.代码 在滚动数字的标签上加上类名counter <div class="about_right flex5&qu ...

  7. android 文字滚动组件,Android textview 跑马灯文字滚动效果

    设置如下TextView控件文件的XML: android:id="@+id/textview" android:layout_width="match_parent&q ...

  8. 各种文字滚动效果代码

    几排文字向上滚动 <MARQUEE direction=up οnmοuseοut=start(); οnmοuseοver=stop(); scrollAmount=1 scrollDelay ...

  9. css数字/文字滚动效果

    效果: 原理 利用伪类,开始的时候给本来的内容盖住,然后执行动画. 设置宽高,宽就是单个内容(比如数字中的一位数)的宽,让内容一行一个的排成列. 动画就是让这些内容一个个的往上升,造成一种滚动效果 最 ...

最新文章

  1. SAP BPC最佳实践-SAP BPC的OLAP引擎比较(MS OLAPBW OLAP)
  2. Exception Handling Best Practices in .NET
  3. mysql只能查询出1000条数据_MySQL SELECT语句中只能输出1000行数据的原因
  4. H.264编码profile level控制
  5. 不同步节点在线使用Remix开发以太坊Dapp及solidity学习入门 ( 一 ):智能合约HelloWorld
  6. java闹钟程序声音_跪求高手帮忙写一个JAVA手机闹钟程序 实现添加铃声和设置多闹钟...
  7. php扩展 创建类 给外部调用
  8. 改进3D/2D U-NET--添加深度监督deep supervision【Keras】
  9. 离散数学题库管理系统
  10. App Inventer制作蓝牙通讯软件
  11. Visual FoxPro正式版
  12. 数字电路与逻辑设计——组合逻辑篇
  13. 电商系统数据库设计原则
  14. 短视频源码应该优化的六个方面
  15. 下载excel打开后弹出警告提示,文件类型和文件内容不符问题处理
  16. 卡片跳转快应用指定页面,如何点返回直接退出快应用回到卡片
  17. c语言基础知识选择题,C语言基础知识选择试题.doc
  18. 使用ChannelSftp的put方法被挂起,卡住的问题
  19. android XML文件加注释
  20. XPRIZE确定十项未来保护森林所需的技术突破

热门文章

  1. 身份证复印件用时最好签注用途 否则可引发风险
  2. html常见模板语法,模板语法
  3. Python list.sort()里面的key 运行机制
  4. 干货解析|深度学习文本分类在支付宝投诉文本模型上的应用
  5. 户外导航软件OruxMaps及其相关地图资源_我是亲民_新浪博客
  6. JAVA加壳保护之JarProtector的使用小记
  7. 教你怎么将手机转变成音箱
  8. Android实战:网易新闻(附完整代码)
  9. 服务器accept队列溢出及其解决
  10. 虚拟机vmware安装Kali