利用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 相关文章推荐
js正确获取元素样式详解
Aug 07 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
Nov 14 Javascript
jquery获得同源iframe内body下标签的值的方法
Sep 25 Javascript
推荐4个原生javascript常用的函数
Jan 12 Javascript
js获取及修改网页背景色和字体色的方法
Dec 29 Javascript
jQuery插件开发汇总
May 15 Javascript
微信小程序(应用号)简单实例应用及实例详解
Sep 26 Javascript
vue2.0全局组件之pdf详解
Jun 26 Javascript
JS+canvas画一个圆锥实例代码
Dec 13 Javascript
解决vue2中使用axios http请求出现的问题
Mar 05 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
Jun 02 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
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
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
python查看FTP是否能连接成功的方法
2015/07/30 Python
Python+django实现文件上传
2016/01/17 Python
Python人脸识别初探
2017/12/21 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
柯基袜:Corgi Socks
2017/01/26 全球购物
美国知名艺术画网站:Art.com
2017/02/09 全球购物
六道php面试题附答案
2014/06/05 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
查环查孕证明
2014/01/10 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
学生检讨书怎么写
2015/05/07 职场文书
投资申请报告
2015/05/19 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
篮球拉拉队口号
2015/12/25 职场文书
《将心比心》教学反思
2016/02/23 职场文书
java版 联机五子棋游戏
2022/05/04 Java/Android
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS