利用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 相关文章推荐
jQuery1.6 使用方法一
Nov 23 Javascript
jQuery cdn使用介绍
May 08 Javascript
angularjs中的单元测试实例
Dec 06 Javascript
React Native验证码倒计时工具类分享
Oct 24 Javascript
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
vue微信分享到朋友圈 vue微信发送给好友
Nov 28 Javascript
webpack优化的深入理解
Dec 10 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
Jun 06 Javascript
vue swipe自定义组件实现轮播效果
Jul 03 Javascript
vue实现图片上传预览功能
Dec 23 Javascript
react组件基本用法示例小结
Apr 27 Javascript
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 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
php 魔术方法详解
2014/11/11 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
简单了解django orm中介模型
2019/07/30 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
优秀党支部事迹材料
2014/01/14 职场文书
高中军训感想300字
2014/03/04 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
V Rising 服务器搭建图文教程
2022/06/16 Servers