js实现透明度渐变效果的方法


Posted in Javascript onApril 10, 2015

本文实例讲述了js实现透明度渐变效果的方法。分享给大家供大家参考。具体分析如下:

这里可实现一开始元素的透明度是30,鼠标移上的时候,透明度慢慢增加,到透明度100停止。鼠标移出,透明度慢慢减少,减少到30的效果。

要点一:因为无法直接获取和改变透明度的值,可以把透明度值赋给一个变量,让变量变化,最后把变量的值再赋给元素的透明值。

var alpha=30;

要点二:判断目标值和目前透明值,来判定是正向速度还是负向速度。

if(target > alpha){
speed = 2;
}else{
speed = -2;
}

要点三:如果透明值达到目标值,关掉定时器,否则透明值继续变化。最后把值赋给元素,因为透明度有兼容问题,所以要写上两个写法。

if(alpha == target){
clearInterval(timer);
}
else{
alpha = alpha + speed;
run.style.filter = 'alpha(opacity='+alpha+')';
run.style.opacity = alpha/100;
document.title = alpha;
}

最后,上代码:

<!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>无标题文档</title>
<style>
body{margin:0; padding:0;}
#run{width:100px; height:100px; background:#06c;
position:absolute; border:1px solid #000;
opacity:0.3; filter:alpha(opacity=30);}
</style>
<script>
window.onload = function(){
 var run = document.getElementById("run");
 var btn = document.getElementById("btn");
 var speed = 1;
 var timer = null;
 var alpha=30;
 run.onmouseover = function(){
  startrun(100);
 }
 run.onmouseout = function(){
  startrun(30);
 }
 function startrun(target){
  clearInterval(timer);
  timer = setInterval(function(){
   if(target > alpha){
    speed = 2;
   }else{
    speed = -2;
   }
   if(alpha == target){
    clearInterval(timer);
   }
   else{
    alpha = alpha + speed;
    run.style.filter = 'alpha(opacity='+alpha+')';
    run.style.opacity = alpha/100;
    document.title = alpha;
   }
  },30)
 }
}
</script>
</head>
<body>
<div id="run"></div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
一个很简单的办法实现TD的加亮效果.
Jun 29 Javascript
document.getElementById获取控件对象为空的解决方法
Nov 20 Javascript
jQuery中get和post方法传值测试及注意事项
Aug 08 Javascript
JavaScript中解析JSON数据的三种方法
Jul 03 Javascript
js计算系统当前日期是星期几的方法
Jul 14 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
webpack 1.x升级过程中的踩坑总结大全
Aug 09 Javascript
JavaScrip关于创建常量的知识点
Dec 07 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
Javascript 实现 Excel 导入生成图表功能
Oct 22 Javascript
Vue 一键清空表单的实现方法
Feb 07 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
js实现同一页面多个运动效果的方法
Apr 10 #Javascript
js实现同一个页面多个渐变效果的方法
Apr 10 #Javascript
js实现缓冲运动效果的方法
Apr 10 #Javascript
js实现分享到随页面滚动而滑动效果的方法
Apr 10 #Javascript
js实现同一页面多个不同运动效果的方法
Apr 10 #Javascript
js实现类似jquery里animate动画效果的方法
Apr 10 #Javascript
js实现类似新浪微博首页内容渐显效果的方法
Apr 10 #Javascript
You might like
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
Php-Redis安装测试笔记
2015/03/05 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
JS实现碰撞检测的方法分析
2018/01/19 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
Python 线程池用法简单示例
2019/10/02 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
学习委员自我鉴定
2014/01/13 职场文书
运动会演讲稿
2014/05/07 职场文书
优秀大学生自荐信
2015/03/26 职场文书
《认识年月日》教学反思
2016/02/19 职场文书
nginx容器方式反向代理实战
2022/04/18 Servers
Windows 64位 安装 mysql 8.0.28 图文教程
2022/04/19 MySQL
vue组件vue-esign实现电子签名
2022/04/21 Vue.js
Python PIL按比例裁剪图片
2022/05/11 Python
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS