前言

所谓文字聚合效果,原理就是将容器分为若干的小块,然后每个小块设置 background-poisition ,最后添加css3动画就可以了,去掉注释,也就仅仅20行的代码。
先来看看效果图:
js代码如下:
//c为列数,r为行数,把box划分成多少个小块
var box = document.querySelector('.boxWrap1'),c=4,r=8;
//每个小块的宽高
var w = box.offsetWidth/c,h = box.offsetHeight/r;
//循环添加小块
for(var i = 0;i < r;i++){
for(var j = 0;j < c;j++) {
var _div=document.createElement('div');
var _left = j * w,_top = i * h;
//添加css样式,并设置每个小块的背景
_div.style.cssText = 'width:'+w+'px;height:'+h+'px;left:'+_left+'px;top:'+_top+'px; opacity:0;background-position:'+(-_left) + 'px ' + (-_top) + 'px';
//添加css动画时间
_div.style.transition = 'all '+ Random(1,1.8) +'s ease';
//添加css的transform动画
_div.style.transform = 'perspective(800px) translate3d('+Random(-200,200)+'px, '+Random(-200,200)+'px,300px) rotate('+Random(-90,90)+'deg) scale('+ Random(0,2) +')'
//添加
box.appendChild(_div);
};
};
//延时添加动画
setTimeout(function(){
box.classList.add('set');
},100);
//随机数
function Random(start,end){
return Math.random()*(end-start)+start;
};
完整的示例如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>利用JS实现文字的聚合动画效果</title>
<style>
.boxWrap1{width: 160px;height: 417px;position: relative;margin:0px auto;}
.boxWrap1 img{width: 100%;}
.boxWrap1 div{background: url(http://itakeo.com/wpimg/2_1.png) no-repeat;background-size: 160px auto; position: absolute; left: 0px;top: 0px;
}
.boxWrap1.set div{ opacity: 1!important;
transform:perspective(800px) translate3d(0px,0px,0px) rotate(0deg) scale(1)!important;
-moz-transform:perspective(800px) translate3d(0px,0px,0px) rotate(0deg) scale(1)!important;
-webkit-transform:perspective(800px) translate3d(0px,0px,0px) rotate(0deg) scale(1)!important;
}
.boxSiteWrap{ width: 100%;overflow: hidden;height: auto; background: #000;padding: 140px 0}
.boxSiteWrap button{cursor:pointer;display: block;font-size: 16px; width: 140px;height: 40px; background: #fff;color: #000;border:none;margin:30px auto;}
</style>
</head>
<body>
<div class="boxSiteWrap">
<div class="boxWrap1"></div>
<button>重新加载</button>
</div>
<script>
window.addEventListener('load',function(){
;(function(){
function init(){
var box = document.querySelector('.boxWrap1'),c=4,r=8;
var w = box.offsetWidth/c,h = box.offsetHeight/r;
for(var i=0;i<r;i++){
for(var j=0;j<c;j++) {
var _div=document.createElement('div');
var _left = j * w,_top = i * h;
_div.style.cssText = 'width:'+w+'px;height:'+h+'px;left:'+_left+'px;top:'+_top+'px; opacity:0;background-position:'+(-_left) + 'px ' + (-_top) + 'px';
_div.style.transition = _div.style.MozTransition = _div.style.WebkitTransition = 'all '+ Random(1,1.8) +'s ease';
_div.style.transform = _div.style.MozTransform = _div.style.WebkitTransform = 'perspective(800px) translate3d('+Random(-200,200)+'px, '+Random(-200,200)+'px,300px) rotate('+Random(-90,90)+'deg) scale('+ Random(0,2) +')'
box.appendChild(_div);
};
};
setTimeout(function(){
box.classList.add('set')
},100);
function Random(start,end){
return Math.random()*(end-start)+start;
};
};
init();
var flag = true;
document.querySelector('button').onclick = function(){
if(flag){
document.querySelector('.boxWrap1').classList.remove('set')
setTimeout(function(){
document.querySelector('.boxWrap1').innerHTML = '';
init();
flag = true;
},1200);
flag = false;
};
};
})();
});
</script>
</body>
</html>
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# js
# 文字动画
# 粒子效果
# js文字动画
# js文字动画效果
# 实例介绍JavaScript中多种组合继承
# 15分钟深入了解JS继承分类、原理与用法
# JavaScript寄生组合式继承原理与用法分析
# JavaScript常见继承模式实例小结
# 彻底理解js面向对象之继承
# js中继承的几种用法总结(apply
# call
# prototype)
# JavaScript是如何实现继承的(六种方式)
# JavaScript继承与聚合实例详解
# 小块
# 随机数
# 也就
# 这篇文章
# 先来
# 多少个
# 就可以
# 行数
# 加载
# 有疑问
# translate3d
# rotate
# deg
# perspective
# ease
# position
# Random
# transform
# left
# transition
相关文章:
浅谈Javascript中的Label语句
Swift中swift中的switch 语句
如何在景安服务器上快速搭建个人网站?
建站之星如何实现网站加密操作?
重庆市网站制作公司,重庆招聘网站哪个好?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
深圳网站制作案例,网页的相关名词有哪些?
广州营销型建站服务商推荐:技术优势与SEO优化解析
PHP正则匹配日期和时间(时间戳转换)的实例代码
C#怎么使用委托和事件 C# delegate与event编程方法
如何制作一个表白网站视频,关于勇敢表白的小标题?
建站之星各版本价格是多少?
制作证书网站有哪些,全国城建培训中心证书查询官网?
常州企业建站如何选择最佳模板?
如何在新浪SAE免费搭建个人博客?
IOS倒计时设置UIButton标题title的抖动问题
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
建站之星免费模板:自助建站系统与智能响应式一键生成
C#如何使用XPathNavigator高效查询XML
建站之星24小时客服电话如何获取?
如何自定义建站之星网站的导航菜单样式?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
建站主机选哪种环境更利于SEO优化?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
佛山企业网站制作公司有哪些,沟通100网上服务官网?
Python文件管理规范_工程实践说明【指导】
,南京靠谱的征婚网站?
php json中文编码为null的解决办法
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
清除minerd进程的简单方法
如何在建站主机中优化服务器配置?
高防服务器租用如何选择配置与防御等级?
微信小程序 五星评分(包括半颗星评分)实例代码
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
香港服务器如何优化才能显著提升网站加载速度?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
香港服务器网站推广:SEO优化与外贸独立站搭建策略
ppt制作免费网站有哪些,ppt模板免费下载网站?
完全自定义免费建站平台:主题模板在线生成一站式服务
如何用腾讯建站主机快速创建免费网站?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
建站主机是什么?如何选择适合的建站主机?
如何快速登录WAP自助建站平台?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
简历在线制作网站免费版,如何创建个人简历?
如何用y主机助手快速搭建网站?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
建站10G流量真的够用吗?如何应对访问高峰?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。