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 相关文章推荐
jQuery实现的类flash菜单效果代码
May 17 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
Apr 19 Javascript
javascript学习笔记--数字格式类型
May 22 Javascript
JavaScript观察者模式(经典)
Dec 09 Javascript
微信小程序 页面传参实例详解
Nov 16 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
Dec 07 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
Aug 24 jQuery
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
Jan 16 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
vue keep-alive 动态删除组件缓存的例子
Nov 04 Javascript
微信小程序顶部导航栏可滑动并选中放大
Dec 05 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(7) php 字符串相关应用
2010/03/05 PHP
深入分析php之面向对象
2013/05/15 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
JavaScript 常用函数库详解
2009/10/21 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
js实现批量删除功能
2020/08/27 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
跟单文员的岗位职责
2013/11/14 职场文书
捐赠仪式主持词
2014/03/19 职场文书
考试保密承诺书
2014/08/30 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
财务工作失误检讨书
2015/02/19 职场文书
教师求职简历自我评价
2015/03/10 职场文书
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL