利用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 相关文章推荐
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
Nov 30 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
Jul 06 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
深入浅析JavaScript中的作用域和上下文
Mar 26 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
详解如何较好的使用js
Dec 16 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
Mar 19 Javascript
JS设计模式之状态模式概念与用法分析
Feb 05 Javascript
webpack dll打包重复问题优化的解决
Oct 10 Javascript
Vue源码解析之数组变异的实现
Dec 04 Javascript
Jquery获取radio选中值实例总结
Jan 17 jQuery
三剑客:offset、client和scroll还傻傻分不清?
Dec 04 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网页显示各种语法错误
2013/09/23 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
List Installed Hot Fixes
2007/06/12 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
jQuery参数列表集合
2011/04/06 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
使用requests库制作Python爬虫
2018/03/25 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
基于python的列表list和集合set操作
2019/11/24 Python
Python读取yaml文件的详细教程
2020/07/21 Python
python中pyplot基础图标函数整理
2020/11/10 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
户籍证明模板
2014/09/28 职场文书
公司门卫岗位职责
2015/04/13 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android