css3实战版的点击列表项产生水波纹动画——之jsoop面向对象封装版
1、html:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<link rel="stylesheet" href="./css/reset.css"/>
<link rel="stylesheet" href="./css/animation.css"/>
<script type="text/javascript" src="./js/jquery-1.10.2.min.js"></script>
<title>animation-css3动画</title>
</head>
<body>
<ul class="clear" id="animationlist">
<li><span class="circle"></span><a href="#">首页</a></li>
<li><span class="circle"></span><a href="#">待办文件</a></li>
<li><span class="circle"></span><a href="#">已办文件</a></li>
<li><span class="circle"></span><a href="#">访问记录</a></li>
</ul>
</body>
<script type="text/javascript" src="js/animation_oop.js"></script>
<script type="text/javascript">
var ani = new Circleopa('animationlist','circle-opacity','#333','#2196f3');
ani.init();
</script>
</html>
2、css:
ul{width: 300px;border: red;}
ul li{width: 300px;height: 70px;line-height: 70px;background: #fff;text-align: center;cursor: pointer;overflow: hidden;}
ul li a{font-weight: 900;}
ul li:hover a{
color: #2196f3!important;
/*animation: circle-opacity 0.5s linear 0s 1;*/
/*-webkit-animation-fill-mode:forwards;让动画停在最后是这个属性,*/
/*animation-fill-mode:forwards;*/
}
ul li a{position: relative;left: -50px;color: #333;top: -30px;}
.circle{background: transparent;border-radius: 50%;width: 70px;height: 70px;display: inline-block;margin: 0 auto;}
@keyframes circle-opacity{
0% {
background: rgba(192,225,250,0);
}
50% {
transform:scale(4);
background: rgba(192,225,250,1);
}
100% {
transform:scale(16);
background: rgba(192,225,250,0);
}
}
@-webkit-keyframes circle-opacity{/*兼容chrome的动画帧设定,要用-webkit-animation属性调用*/
0% {
background: rgba(192,225,250,0);
}
50% {
transform:scale(4);
background: rgba(192,225,250,1);
}
100% {
transform:scale(16);
background: rgba(192,225,250,0);
}
}
3、jsoop版——闭包,面向对象
/*
* 参数说明:
* context:上下文环境,字串形式是id,对象形式就是已经获取到的dom元素
* animationcss:css里面封装的动画样式类
* defaultcolor:默认列表项里面的字体颜色
* activecolor:滑过或点击后的字体样式值
*
* */
;(function(){
function Circleopa(context,animationcss,defaultcolor,activecolor){
this.context = typeof context == 'string'?document.getElementById(context) : context;
this.animationcss = animationcss;
this.defaultcolor = defaultcolor;
this.activecolor = activecolor;
}
Circleopa.prototype = {
init:function(){
var that = this;//这个this必须写在这里,相对于init函数的子onclick回调函数才能引用的到
var items = this.context.getElementsByTagName('li');
for(var i = 0; i < items.length; i++){
items[i].onclick = function(){//下面的事件中的this指向的是触发事件的源对象li元素
// alert(that);进来了
this.getElementsByTagName('span')[0].style.animation = that.animationcss+' 0.5s linear 0s 1';
this.getElementsByTagName('span')[0].style.webkitAnimation = that.animationcss+' 0.5s linear 0s 1';
this.getElementsByTagName('span')[0].style.animationFillMode = 'forwards';
$(this).siblings().children('a').css('color',that.defaultcolor);
$(this).children('a').css('color',that.activecolor);
that.clearAnimation(this);
//alert(this.getElementsByTagName('span')[0].getAttribute('class'));//弹出circle证明获取到了子元素span
}
}
},
clearAnimation:function(self){
var sid = window.setInterval(function(){
self.getElementsByTagName('span')[0].style.animation = '';
self.getElementsByTagName('span')[0].style.webkitAnimation = '';
self.getElementsByTagName('span')[0].style.animationFillMode = '';
sid = window.clearInterval(sid);
},500);
}
}
window.Circleopa = Circleopa;
})(window);
css3实战版的点击列表项产生水波纹动画——之jsoop面向对象封装版的更多相关文章
- css3实战版的点击列表项产生水波纹动画
1.html+js: <!DOCTYPE html><html><head lang="en"> <meta charset=&qu ...
- 自定义ListView适配器Adapter引用布局文件的情况下实现点击列表项时背景颜色为灰色
listview控件设置适配器的时候,如果使用自定义的adapter,比如MyArrayAdapter extends ArrayAdapter<String> 如果listitem布局文 ...
- Flutter 实战(一):列表项内容可自定义的列表组件
前言 本篇文的目的是熟练掌握 Flutter 组件的封装,并且使用回调函数实现主要功能. 本组件的设计灵感来源于 Element 组件库的 table 组件. 正题 定义回调函数 在此之前,必须要了解 ...
- ListView控件的列表项的文字不满一行的时候,如何实现点击该列表项的空白区域仍可触发列表项的点击事件
今天在做Demo的过程中,使用到了ListView.然而在实现过程中,发现一个出现了一个问题:只能点击列表项的文字区域可以触发点击事件,而点击列表项的空白区域无法触发点击事件. 如下图: listit ...
- Android学习笔记(23):列表项的容器—AdapterView的子类们
AdapterView的子类的子类ListView.GridView.Spinner.Gallery.AdapterViewFlipper和StackView都是作为容器使用,Adapter负责提供各 ...
- Android之水波纹点击效果(RippleView)
Android5.0后各种炫的效果纷纷出来,写这篇博客主要是讲的是按钮点击效果带有的水波纹(波浪式). 当然我写的这个是自定义来实现的,在低版本(5.0一下)也可以实现点击效果.看看效果图: 上图可看 ...
- android: Android水波纹点击效果
Android API 21及以上新增了ripple标签用来实现水波纹的效果.我们可以通过设置ripple背景来实现一些View点击效果. 该水波纹效果有两种:一种是有界的(点击后类似于一个矩形向四周 ...
- Android点击列表后弹出输入框,所点击项自动滚动到输入框上方
使用微信的朋友圈会发现,点击某一条评论后输入框会弹出来,然后所点击的那一项会自动地滚动到输入框上方的位置,这样如果开始所点击的评论在屏幕很下方的话,就不会被输入框遮住,虽然微信这一点在我的MX2频繁点 ...
- CSS3实战手册(第3版)(影印版)
<CSS3实战手册(第3版)(影印版)> 基本信息 原书名:CSS3: The Missing Manual, 3E 作者: David Sawyer McFarland 出版社:东南大学 ...
随机推荐
- 浅谈Android五大布局
Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLay ...
- js判断是否是正整数,js判断是否是数字
//判断字符串是否为数字 function checkRate(input) { var re = /^[0-9]+.?[0-9]*$/; if (!re.test(input.rate.value) ...
- android脚步---如何看log之程序停止运行,和UI线程和非UI线程之间切换
经常运行eclipse时,烧到手机出现,“停止运行”,这时候得通过logcat查log了.一般这种情况属于FATAL EXCEPTION,所以检索FATAL 或者 EXCEPTION,然后往下看几行 ...
- CALayer & UIView 关系浅析
原文链接:http://www.jianshu.com/p/8e6a313c158e 一.CALayer和UIView的关系 UIView显示在屏幕上归功于CALayer 可以说:UIView依赖CA ...
- aapt: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS64
前阵子在ubuntu上搭载安卓的开发环境(Eclipse+Sdk+Adt),搭载是完成了,但是却出现了该问题: aapt: error while loading shared libraries: ...
- java中“==”和equal区别
8个月以后就要正式找工作啦,我觉得现在是时候花时间好好深入研究一下以前比较混肴的知识.这就当作是自我成长的第一步! 对于String中的“equal方法”和“==”一直有点混肴,今天重新看了一下他们两 ...
- 配置glance使用NFS后端
首先先使用“glance image-delete”命令删除所有镜像,释放磁盘空间. 停止glance服务:service openstack-glance-api stopservice opens ...
- 英语学习/词典app行业top5简要分析
综述 根据豌豆夹上的下载量如下图所示,我们组确定的国内行业top5分别是:有道词典(黄明帅负责),金山词霸(黄珂锐负责),百度翻译(刘馨负责),百词斩(贾猛负责),英语流利说(亢建强负责)(时间有限, ...
- 并发数据(锁)ReaderWriterLockSlim
ReaderWriterLockSlim 类 ReaderWriterLockSlim 类支持三种锁定模式:Read,Write,UpgradeableRead.这三种模式对应的方法分别是 Enter ...
- mysql的数据类型int、bigint、smallint 和 tinyint取值范围
使用整数数据的精确数字数据类型. bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字 ...