利用10行js代码实现上下滚动公告效果


Posted in Javascript onDecember 08, 2017

需求

在最近的项目中需要实现公告栏滚动显示效果如下:

利用10行js代码实现上下滚动公告效果

解决方案

1、 HTML

先建一个div层作为公告显示区,里面包裹一个公告列表(ul);

<div class="notice">
 <ul>
 <li>第1条公告第1条公告第1条公告第1条公告第1条公告第1条公告</li>
 <li>第2条公告第2条公告第2条公告第2条公告第2条公告第2条公告</li>
 <li>第3条公告第3条公告第3条公告第3条公告第3条公告第3条公告</li>
 <li>第4条公告第4条公告第4条公告第4条公告第4条公告第4条公告</li>
 </ul>
</div>

2、 CSS

固定公告栏显示区域的高度(35px),每条公告信息(li)的高度也必须是这个高度(我这里偷懒就用了行高),后面js中还要用到这个值。

div,ul,li{margin: 0;padding: 0}/*先初始化一下默认样式*/
.notice {
 width: 300px;/*单行显示,超出隐藏*/
 height: 35px;/*固定公告栏显示区域的高度*/
 padding: 0 30px;
 background-color: #b3effe;
 overflow: hidden;
}
.notice ul li {
 list-style: none;
 line-height: 35px;
 /*以下为了单行显示,超出隐藏*/
 display: block;
 white-space: nowrap;
 text-overflow: ellipsis;
 overflow: hidden;
}

3、 JavaScript

封装函数 noticeUp.js

使用 jquery animate方法改变列表ul的marginTop值来实现滚动效果;

知识点:

1、animate 回调函数 animate 函数执行完之后,要执行的函数。

2、appendTo() 方法

在被选元素的结尾(仍然在内部)插入指定内容。

注意:指定内容是当前页面中的某些元素,那么这些元素将从原位置上消失。简而言之,这相当于一个移动操作,而不是复制操作。

/*
* 参数说明
* obj : 动画的节点,本例中是ul
* top : 动画的高度,本例中是-35px;注意向上滚动是负数
* time : 动画的速度,即完成动画所用时间,本例中是500毫秒,即marginTop从0到-35px耗时500毫秒
* function : 回调函数,每次动画完成,marginTop归零,并把此时第一条信息添加到列表最后;
* 
*/ 
function noticeUp(obj,top,time) {
 $(obj).animate({
 marginTop: top
 }, time, function () {
 $(this).css({marginTop:"0"}).find(":first").appendTo(this);
 })
}

4、 封装函数的调用

首先引入jQuery库和自己的封装插件

使用定时器setInterval来控制公告信息显示的时间间隔,本例中是2000毫秒

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="noticeUp.js"></script>
 <script>
 $(function () {
 // 调用 公告滚动函数
 setInterval("noticeUp('.notice ul','-35px',500)", 2000);
 });
</script>

更多滚动公告方式:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
wordpress之js库集合研究介绍
Aug 17 Javascript
javascript 表单验证常见正则
Sep 28 Javascript
12个非常有创意的JavaScript小游戏
Mar 18 Javascript
js DataSet数据源处理代码
Mar 29 Javascript
js处理表格对table进行修饰
May 26 Javascript
JS插件overlib用法实例详解
Dec 26 Javascript
详解javascript实现自定义事件
Jan 19 Javascript
Javascript HTML5 Canvas实现的一个画板
Apr 12 Javascript
关于验证码在IE中不刷新的快速解决方法
Sep 23 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
Aug 23 jQuery
在vue-cli中组件通信的方法
Dec 16 Javascript
js实现点击展开隐藏效果(实例代码)
Sep 28 Javascript
vue axios 二次封装的示例代码
Dec 08 #Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
Dec 08 #Javascript
js断点调试心得分享(必看篇)
Dec 08 #Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
Dec 08 #Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
Dec 08 #Javascript
微信小程序实现下载进度条的方法
Dec 08 #Javascript
js断点调试经验分享
Dec 08 #Javascript
You might like
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
jQuery随机切换图片的小例子
2013/04/18 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
介绍Python中内置的itertools模块
2015/04/29 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
python变量的作用域是什么
2020/05/26 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
SQL数据库笔试题
2016/03/08 面试题
审计主管岗位职责
2014/01/31 职场文书
团日活动总结书
2014/05/08 职场文书
酒会邀请函
2015/01/31 职场文书
五一晚会主持词
2015/07/01 职场文书
2015年学校政教工作总结
2015/07/20 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
MySQL创建管理RANGE分区
2022/04/13 MySQL
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android