利用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 相关文章推荐
QQ登录简单实现代码
Mar 09 Javascript
用Javascript 和 CSS 实现脚注(Footnote)效果
Sep 09 Javascript
分享两款带遮罩的jQuery弹出框
Dec 30 Javascript
关于javascript事件响应的基础语法总结(必看篇)
Dec 26 Javascript
JavaScript日期对象(Date)基本用法示例
Jan 18 Javascript
js时间戳和c#时间戳互转方法(推荐)
Feb 15 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
Sep 20 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
Oct 19 Javascript
基于js文件加载优化(详解)
Jan 03 Javascript
vue如何实现自定义底部菜单栏
Jul 01 Javascript
webpack是如何实现模块化加载的方法
Nov 06 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
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
Python isinstance判断对象类型
2008/09/06 Python
深入理解Python装饰器
2016/07/27 Python
Python之reload流程实例代码解析
2018/01/29 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
考博自荐信
2013/10/25 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
健康教育评估方案
2014/05/25 职场文书
投标承诺函范文
2015/01/21 职场文书
南京导游词
2015/02/03 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
于丹论语心得观后感
2015/06/15 职场文书
安全生产协议书
2016/03/22 职场文书
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python