JS实现单行文字不间断向上滚动的方法


Posted in Javascript onJanuary 29, 2015

本文实例讲述了JS实现单行文字不间断向上滚动的方法。分享给大家供大家参考。具体分析如下:

前几天帮一个朋友写了一个单行文字不间断向上滚动的JS效果,现在分享给需要的weber。先看HTML和CSS代码:

CSS:

.wrap{padding:10px;border:1px #ccc solid; width:500px;margin:20px auto;}

.roll-wrap{height:130px;overflow:hidden;}

HTML:

<div class="wrap">

    <div class="roll-wrap" id="roll-wrap">

        <ul>

            <li>JS文本向上滚动1</li>

            <li>JS文本向上滚动2</li>

            <li>JS文本向上滚动3</li>

            <li>JS文本向上滚动4</li>

            <li>JS文本向上滚动5</li>

            <li>JS文本向上滚动6</li>

            <li>JS文本向上滚动7</li>

        </ul>

    </div>

</div>

该动画效果的原理是 先将ul向上滚动一个li的高度,滚动完后将ul里面的第一个li放到ul的末尾,这时原第二个li变成了ul里面的第一个li,然后再重复上面的动作,就这样不断重复实现不间断滚动。

JS(jQuery)代码:

function scrollTxt(){

    var controls={}, 

        values={},

        t1=200, /*播放动画的时间*/

        t2=2000, /*播放时间间隔*/

        si;

    controls.rollWrap=$("#roll-wrap");

    controls.rollWrapUl=controls.rollWrap.children();

    controls.rollWrapLIs=controls.rollWrapUl.children();

    values.liNums=controls.rollWrapLIs.length;

    values.liHeight=controls.rollWrapLIs.eq(0).height();

    values.ulHeight=controls.rollWrap.height();

    this.init=function(){

        autoPlay();

        pausePlay();

    }

    /*滚动*/

    function play(){

        controls.rollWrapUl.animate({"margin-top" : "-"+values.liHeight}, t1, function(){

            $(this).css("margin-top" , "0").children().eq(0).appendTo($(this));

        });

    }

    /*自动滚动*/

    function autoPlay(){

        /*如果所有li标签的高度和大于.roll-wrap的高度则滚动*/

        if(values.liHeight*values.liNums > values.ulHeight){

            si=setInterval(function(){

                play();

            },t2);

        }

    }

    /*鼠标经过ul时暂停滚动*/

    function pausePlay(){

        controls.rollWrapUl.on({

            "mouseenter":function(){

                clearInterval(si);

            },

            "mouseleave":function(){

                autoPlay();

            }

        });

    }

}

new scrollTxt().init();

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 开天辟地入门篇一
Dec 09 Javascript
jquery加载页面的方法(页面加载完成就执行)
Jun 21 Javascript
按钮接受回车事件的三种实现方法
Jun 06 Javascript
jQuery固定元素插件scrolltofixed使用指南
Apr 21 Javascript
JavaScript中指定函数名称的相关方法
Jun 04 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
Jun 05 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
Oct 19 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
Feb 03 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
Jan 30 Javascript
JavaScript惰性载入函数实例分析
Mar 27 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
Vue退出登录时清空缓存的实现
Nov 12 Javascript
JS清除选择内容的方法
Jan 29 #Javascript
IE中鼠标经过option触发mouseout的解决方法
Jan 29 #Javascript
JS判断是否360安全浏览器极速内核的方法
Jan 29 #Javascript
jQuery中$.each使用详解
Jan 29 #Javascript
jQuery显示和隐藏 常用的状态判断方法
Jan 29 #Javascript
移动设备web开发首选框架:zeptojs介绍
Jan 29 #Javascript
JSON格式的键盘编码对照表
Jan 29 #Javascript
You might like
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
围观tangram js库
2010/12/28 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
python中遍历文件的3个方法
2014/09/02 Python
Python中查看文件名和文件路径
2017/03/31 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
Python类反射机制使用实例解析
2019/12/30 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
python中的itertools的使用详解
2020/01/13 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
项目合作协议书
2014/09/23 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
element多个表单校验的实现
2021/05/27 Javascript
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python
试用1103暨1103、1101同门大比武 [ DAIWEI ]
2022/04/05 无线电