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 相关文章推荐
JS的递增/递减运算符和带操作的赋值运算符的等价式
Dec 08 Javascript
js使用ajax读博客rss示例
May 06 Javascript
高性能JavaScript DOM编程(1)
Aug 11 Javascript
JavaScript Math.round() 方法
Dec 18 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
Mar 16 Javascript
详谈$.data()的用法和作用
Feb 13 Javascript
Angular-UI Bootstrap组件实现警报功能
Jul 16 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
Aug 08 Javascript
vue代码分割的实现(codesplit)
Nov 13 Javascript
vue-cli3项目展示本地Markdown文件的方法
Jun 07 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
微信小程序实现签到弹窗动画
Sep 21 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
11个PHP 分页脚本推荐
2011/08/15 PHP
PHP代码优化的53个细节
2014/03/03 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
php文件包含的几种方式总结
2019/09/19 PHP
JavaScript 乱码问题
2009/08/06 Javascript
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
电大物流学生的自我评价
2013/10/25 职场文书
会计自我鉴定
2013/11/02 职场文书
关于赌博的检讨书
2014/01/24 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
水知道答案观后感
2015/06/08 职场文书