js原生实现淡入淡出
转自http://kb.cnblogs.com/page/90854/
参数说明:
fadeIn()与fadeOut()均有三个参数,第一个是事件, 必填; 第二个是淡入淡出速度, 正整数, 大小自己权衡, 可选参数; 第三个, 是指定淡入淡出到的透明度值(类似于jQuery中的fadeTo()), 0~100的正整数值, 也是可选参数.
- window.onload = function(){
- //底层共用
- var iBase = {
- Id: function(name){
- return document.getElementById(name);
- },
- //设置元素透明度,透明度值按IE规则计,即0~100
- SetOpacity: function(ev, v){
- ev.filters ? ev.style.filter = 'alpha(opacity=' + v + ')' : ev.style.opacity = v / 100;
- }
- }
- //淡入效果(含淡入到指定透明度)
- function fadeIn(elem, speed, opacity){
- /*
- * 参数说明
- * elem==>需要淡入的元素
- * speed==>淡入速度,正整数(可选)
- * opacity==>淡入到指定的透明度,0~100(可选)
- */
- speed = speed || 20;
- opacity = opacity || 100;
- //显示元素,并将元素值为0透明度(不可见)
- elem.style.display = 'block';
- iBase.SetOpacity(elem, 0);
- //初始化透明度变化值为0
- var val = 0;
- //循环将透明值以5递增,即淡入效果
- (function(){
- iBase.SetOpacity(elem, val);
- val += 10;
- if (val <= opacity+500) {
- setTimeout(arguments.callee, speed);
- }else{
- fadeOut(iBase.Id(elem.id));
- }
- })();
- }
- //淡出效果(含淡出到指定透明度)
- function fadeOut(elem, speed, opacity){
- /*
- * 参数说明
- * elem==>需要淡入的元素
- * speed==>淡入速度,正整数(可选)
- * opacity==>淡入到指定的透明度,0~100(可选)
- */
- speed = speed || 20;
- opacity = opacity || 0;
- //初始化透明度变化值为0
- var val = 150;
- //循环将透明值以5递减,即淡出效果
- (function(){
- iBase.SetOpacity(elem, val);
- val -= 10;
- console.log(opacity)
- if (val >= opacity) {
- setTimeout(arguments.callee, speed);
- }else if (val < 0) {
- //元素透明度为0后隐藏元素
- elem.style.display = 'none';
- }
- })();
- }
- /* var btns = iBase.Id('demo').getElementsByTagName('input');
- btns[0].onclick = function(){
- }
- btns[1].onclick = function(){
- fadeOut(iBase.Id('fadeOut'),40);
- }
- btns[2].onclick = function(){
- fadeOut(iBase.Id('fadeTo'), 20, 10);
- }*/
- $(".topic_foot_ul2").on("tap",function(){
- var is = $(this);
- is.find("a").toggleClass("red");
- if(!($(".red")).length==0){
- fadeIn(iBase.Id('fadeIn'),20,100);
- console.log("1")
- }else{
- fadeIn(iBase.Id('fadeOut'),20,100);
- }
- })
- }
js原生实现淡入淡出的更多相关文章
- (38)JS运动之淡入淡出
基本思路:使用样式filter.可是要区分IE浏览器和chrom.firefox的不同,详细也是用定时器来实现. <!DOCTYPE HTML> <!-- --> <ht ...
- 图片轮播(淡入淡出)--JS原生和jQuery实现
图片轮播(淡入淡出)--js原生和jquery实现 图片轮播有很多种方式,这里采用其中的 淡入淡出形式 js原生和jQuery都可以实现,jquery因为封装了很多用法,所以用起来就简单许多,转换成j ...
- 淡入淡出效果的js原生实现
淡入淡出效果,在日常项目中经常用到,可惜原生JS没有类似的方法,而有时小的页面并不值得引入一个jQuery库,所以就自己写了一个,已封装, 有用得着的朋友, 可以直接使用. 代码中另附有一个设置元素透 ...
- 原生JS实现淡入淡出效果(fadeIn/fadeOut/fadeTo)
淡入淡出效果,在日常项目中经常用到,可惜原生JS没有类似的方法,而有时小的页面并不值得引入一个jQuery库,所以就自己写了一个,已封装, 有用得着的朋友, 可以直接使用. 代码中另附有一个设置元素透 ...
- 原生js实现简单轮播的淡入淡出效果
实现这种淡入淡出的轮播关键在于css的一种设置 首先它不能像传统的轮播显示隐藏 或者左右浮动 他应该让其固定定位使其重叠在一起 达到这种效果 然后设置c3动画属性 transition:1s; ...
- js实现多个图片淡入淡出,框架
单个淡入淡出已经写过,可以看看上几遍的博文 <style> *{ margin:0; padding:0; } div{ height:100px; width:100px; backgr ...
- js 淡入淡出的图片
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 针对淡入淡出的定时轮播效果js
如果不使用jquery的fadeIn和fadeOut的接口和不适用animate情况下,如果要做用js实现淡入淡出轮播效果,我所想到的办法就是使用css3新特性transition(注意好兼容性). ...
- js淡入淡出
示例: js淡入淡出 原理:更改css不透明数值 知识点: css不透明 filter:alpha(opacity:30); opacity:0.3;} 小技巧: 小于临界值,做加速 大于临界值,做减 ...
随机推荐
- PHP 标准库 SPL 之数据结构栈(SplStack)简单实践
PHP 5.3.0 版本及以上的堆栈描述可以使用标准库 SPL 中的 SplStack class,SplStack 类继承双链表 ( SplDoublyLinkedList ) 实现栈. 代码: & ...
- ExtJS笔记 Using Events
Using Events The Components and Classes of Ext JS fire a broad range of events at various points in ...
- 10与元素亲密接触:盒元素(the box model)
line-height属性可以设置文本的行间距,可以用像素.em或百分比等于字体大小有关的值定义行间距line-height: 1.6em;(行间距为字体大小的1.6倍) CSS把每一个单一的元素看作 ...
- Django model '__week_day'与python datetime的weekday()
上周出了个bug,按星期几查询数据的时候,发现查到的数据与显示的星期几并不相符,后来发现代码中按星期几查询,有的地方用的是Django QuerySet提供的'__week_day',有的地方用的是p ...
- ERROR 2006 (HY000) at line xx: MySQL server has gone away 解决方法
- 《Android 性能测试初探》
移动测试站点推荐: https://testerhome.com/ 专项相关帖子推荐: <Android 性能测试初探>合集 移动无线应用专项测试浅谈 公开课: [腾讯课堂]Testerh ...
- ios - block数据的回调
block在代理,kvo中传递数据效率最高 实现原理 控制器B想传递数据给控制器A.通过在B控制器中创建Block类型的类,创建方法,方法参数是刚才创建的block类型的变量.在方法实现的内部调用参数 ...
- 20145320 《Java程序设计》第5周学习总结
20145320 <Java程序设计>第5周学习总结 教材学习内容总结 8.1 语法与继承架构 try.catch Java中的错误会被包装为对象,而使用try与catch,JVM会执行t ...
- 史上最易懂的Android jni开发资料--NDK环境搭建
谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK.而在NDKr7开始,Google的Windows版的NDK提供 ...
- Make Blog Beautiful
想做一个文艺而专业的编程技术博客 :) 博客定位 编程大观园,正如其名,探索和汇萃各种编程思想.技术.技能.技巧,并融入自己对编程开发.产品研发的思考和探索. 分类与标签 好的博客分类能让访 ...