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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
jQuery下通过$.browser来判断浏览器.
Apr 05 Javascript
jquery调用wcf并展示出数据的方法
Jul 07 Javascript
基于jquery tab切换(防止页面刷新)
May 23 Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 Javascript
javascript模拟实现ajax加载框实例
Oct 15 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
简单谈谈原生js的math对象
Jun 27 Javascript
使用JS动态显示文本
Sep 09 Javascript
移动前端图片压缩上传的实例
Dec 06 Javascript
详解Ubuntu安装angular-cli遇到的坑
Sep 08 Javascript
微信小程序实现的日期午别医生排班表功能示例
Jan 09 Javascript
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
PHP小教程之实现双向链表
2014/06/12 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
PHP多维数组排序array详解
2017/11/21 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
python在文本开头插入一行的实例
2018/05/02 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
Python数据类型之List列表实例详解
2019/05/08 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
办公室前台岗位职责
2014/01/04 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
我的求职择业计划书
2014/04/04 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
合作意向协议书
2015/01/29 职场文书
Python包argparse模块常用方法
2021/06/04 Python