css3 文字轮番滚动效果2——改进版
1.优化了之前的代码;
2.修正了先前按照文字的条目的数量计算速度的问题,现在改为按照字符的个数计算动画执行一次需要的时间,更为精确;
3.增添了每一行JS代码的注释。
4.这个案例的用途一般为告警信息的展示:
告警的条数是不确定的,每条告警的字数是不确定的,展示告警的区域可根据浏览器的分辨率进行放大缩小;
本案例的书写满足这几个条件。
5.本案例的实现思路:
1)设置一个展示文字的div:该div的宽度用百分比来表示;
2)设置一个能够放下所有的文字条目的div:该div的宽度通过计算得到;
3)获取每一条文字信息加载到父级div中,通过循环获取到每一条信息的宽度和字符个数,然后分别求和;
4)每一条信息宽度求和得到其父级div的宽度,并将父级div的margin-left设置为其宽度的负数;而且动画是从margin-right:100%开始的,这样就完成了从右向左的动画效果。
5)根据每条信息的字符个数求和后计算出执行一次动画所需的总时间。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
.scrollContainer{
width:50%;
height:30px;
line-height:30px;
margin-top:10px;
overflow:hidden;
background-color:#333;
}
@-webkit-keyframes scroll{
from {
margin-left:100%;
}
} @-moz-keyframes scroll{
from {
margin-left:100%;
}
}
@-ms-keyframes scroll{
from {
margin-left:100%;
}
}
.scroll{
height:30px;
overflow:hidden;
-webkit-animation: scroll 5s linear 1s infinite;
-moz-animation: scroll 5s linear 1s infinite;
-ms-animation-name: scroll 5s linear 1s infinite;
animation-name: scroll 5s linear 1s infinite;
}
.contentItem{
line-height:30px;
float:left;
padding-right:20px;
box-sizing:border-box;
font-size:18px;
overflow:hidden;
color:#E3FF00;
text-decoration:none;
}
.scrollBox:hover{
-webkit-animation-play-state:paused;
-moz-animation-play-state:paused;
-ms-animation-play-state:paused;
animation-play-state:paused;
}
</style>
<script src="jquery-1.11.3.min.js"></script>
</head> <body>
<div class="scrollContainer">
<div class="scrollBox" id="content"></div>
</div>
<script type="text/javascript">
$(document).ready(function(){
var newarry = ["This is the first item!","This is the second item!","This is the third item!","This is the fourth item!"];//需要展示的文字
var len = newarry.length;//获取数据的条数
var wordLen = 0;//每条数据中的字符长度变量
var sum=0;//每条数据所占宽度变量
$("#content").empty();//清空数据的父级
for(var i=0;i<len;i++){
var divStr = "<a class='contentItem' href=''>"+newarry[i]+"</a>";
$("#content").append(divStr);//数据的父级内部插入第i条数据
var boxWidth=$(".contentItem").eq(i).width()+22;
sum+=boxWidth;//求取所有数据的宽度的和
wordLen+=(newarry[i].length+2);//求取所有字符的个数,间距按照2个字符计算
};
if(len>0){
$(".scrollBox").css({"animation-duration":0.5+0.5*wordLen+"s"},{"-moz-animation-duration":0.5+0.5*wordLen+"s"},{"-webkit-animation-duration":0.5+0.5*wordLen+"s"});
};//设置动画循环一次需要的总时间,每个字符为0.5s
$(".scrollBox").width(sum);
var width = $(".scrollBox").width();
$(".scrollBox").css({"marginLeft":-width});//设置数据父级的左边界
$(".scrollBox").addClass("scroll");//添加动画
});
</script>
</body>
</html>
css3 文字轮番滚动效果2——改进版的更多相关文章
- js实现文字上下滚动效果
大家都知道,做html页面时,为了提升网页的用户体验,我们需要在网页中加入一些特效,比如单行区域文字上下滚动就是经常用到的特效.如下图示效果: <html> <head> &l ...
- js 实现文字列表滚动效果
今天要实现抽奖名单在首页滚动展示的效果,就用js写了一个,代码如下: html代码: <style type="text/css"> *{margin:;padding ...
- jquery实现文字上下滚动效果
文字上下滚动是经常用到的js效果,这里介绍一种上下渐隐渐出的文字展现效果! 代码实现很简单,只需要引入jquery就可以. 代码如下: <!DOCTYPE> <head> &l ...
- TextView实现文字水平滚动效果
有时候我们使用TextView显示文本,只想把所有内容用一行显示出来,但是一行又显示不完,就需要让文本实现水平滚动的效果. 具体实现方法如下: 1,实现自定义TextView并实现isFocused( ...
- Vue开发组件之替代marquee标签,超出宽度文字横向滚动效果
一.npm 安装 如果你想安装插件(自己写的)安装 install dependencies npm i marquee-components 使用 在main.js引入 import marquee ...
- jquery实现多行文字图片滚动效果
今儿分享一个jquery实现多行滚动效果. 我看一些论坛网站上面,公告处用的较多. 代码如下 复制代码 // 多行滚动(function($){$.fn.extend({Scroll:function ...
- jquery文字纵向滚动效果(带间隔停留)
<script type="text/javascript"> //文字纵向滚动 $(function() { var $this = $("#quotati ...
- jQuery实现文字横向滚动效果
HTML代码: <div id="aaa" style="width:100px; position:relative; white-space:nowrap; o ...
- 纯css3实现文字间歇滚动效果
场景: 假设有4条数据或者标题,视口中只显示两条,采用每次向上滚动一条数据来展示所有的数据.效果如图: 用JavaScript也很容易实现,但是需要操作DOM,可以参考这篇博客.考虑到项目中经常使用V ...
随机推荐
- R语言实战(二)数据管理
本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...
- nvmw安装,用于控制node版本;
之前一直使用的是node v2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试: 上网一看才发现,尼玛的node已经到了6.+版本了,好吧,看来还是得跟 ...
- Java 中的 request 和response 区别
1.response 属于重定向请求: 其地址栏的URL会改变: 会向服务器发送两次请求: 2. request 属于请求转发: 其地址栏的URL不会改变: 向服务器发送一次请求: 举一个区分它们的简 ...
- form表单转Json提交方法
先将表单数值转换成数组存储,存储成的格式为[{"name":"","value":""},.....}] var for ...
- SharePoint 根据时间筛选
最近在整SP列表 老大要求用列表规范周报格式. 提出要在一个视图内查看上周一至周日的内容 翻了下资料想到了以下几种方法 1.在视图页面添加时间筛选器webpart,用参数传入列表筛选 2.在列表添加按 ...
- Powerdesigner SqlServer转Oracle(转)
参考文章,原文地址:http://blog.csdn.net/cicada688/article/details/7802881 问题1:sqlserver数据库直接转oracle.字段类型由sql ...
- 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)
上篇文章<深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)>我们通过对mybatis源码的简单分析,可看出,在mybatis配置文件中,在configuration根 ...
- ArcMap Add-in插件开发中解决VS调试时断点不会命中的问题
在VS2010中进行ArcMap Add-in插件开发(ArcEngine10.1,ArcGIS10.1),运行时为.NET4.0,在程序中设置了断点进行调试,但是运行后程序并不会在断点处停止,且原来 ...
- 30 天精通 Git 版本控管
https://github.com/doggy8088/Learn-Git-in-30-days
- guava学习--monitor
转载:https://my.oschina.net/realfighter/blog/349924 https://my.oschina.net/realfighter/blog/349926 M ...