JS运动改变单物体透明度的方法分析


Posted in Javascript onJanuary 23, 2018

本文实例讲述了JS运动改变单物体透明度的方法。分享给大家供大家参考,具体如下:

除了通过改变物体的 宽,高,letf,top位置或者是运动方向来实现物体运动效果之外,改变物体的透明度,也是运动特效

<script>
  window.onload = function () {
    var oDiv = document.getElementById('div1');
    oDiv.onmousemove = function () {
      startMove(100);
    }
    oDiv.onmouseout = function () {
      startMove(30);
    }
}
var timer = null;
function startMove(iTarget) {
    clearInterval(timer);
    var oDiv = document.getElementById('div1');
    timer = setInterval(function(){
      if(oDiv.offsetAlpha == iTarget){
        ....
      }
    },30);
}
</script>

但是在js中只有offsetLeft/Top ,offsetWidth/Height,这四个方法,并没有offsetAlpha这个方法。

问:那么我们怎么来 获取当前物体的透明度那??

我们可以自己定义一个变量 var alpha  = 30;通过判断这个变量 是否和目标值是否相等,来继续我们下一步的操作;

var alpha = 30; // 自定义一个变量

当alpha 等目标值得时候,清楚定时器,否则就改变透明度的值alpha

if(alpha == iTarget){
   clearInterval(timer);
}else{
   alpha += iSpeed;
   oDiv.style.opacity = alpha/100;
   oDiv.style.filter = 'alpha(opacity:'+alpha+')';
}

完整的代码如下:

<div id="div1"></div>

css样式部分:

<style>
    #div1{
      width: 100px;height: 100px;
      background: green;
      opacity:0.3;
      filter:alpha(opacity:30);/*兼容低版本IE*/
    }
</style>

js部分:

<script>
  window.onload = function () {
    var oDiv = document.getElementById('div1');
    oDiv.onmousemove = function () {
      startMove(100);
    }
    oDiv.onmouseout = function () {
      startMove(30);
    }
  }
  var timer = null;
  var alpha = 30;
  function startMove(iTarget) {
    clearInterval(timer);
    var oDiv = document.getElementById('div1');
    var iSpeed = 0;
    timer = setInterval(function(){
      if(alpha>iTarget){
        iSpeed = -10;
      }else{
        iSpeed = 10;
      }
      if(alpha == iTarget){
        clearInterval(timer);
      }else{
        alpha += iSpeed;
        oDiv.style.opacity = alpha/100;
        oDiv.style.filter = 'alpha(opacity:'+alpha+')';
      }
    },30);
  }
</script>

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

Javascript 相关文章推荐
IE8提示Invalid procedure call or argument 异常的解决方法
Sep 30 Javascript
js实现瀑布流的一种简单方法实例分享
Nov 04 Javascript
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
Aug 18 Javascript
node.js中的fs.fstat方法使用说明
Dec 15 Javascript
js光标定位文本框回车表单提交问题的解决方法
May 11 Javascript
基于Javascript实现倒计时功能
Feb 22 Javascript
jquery中validate与form插件提交的方式小结
Mar 26 Javascript
ES6中Class类的静态方法实例小结
Oct 28 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
Sep 03 Javascript
Vue 实现前进刷新后退不刷新的效果
Jun 14 Javascript
vue实现评论列表功能
Oct 25 Javascript
JS实现基于拖拽改变物体大小的方法
Jan 23 #Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 #Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
Jan 23 #Javascript
实时监控input框,实现输入框与下拉框联动的实例
Jan 23 #Javascript
从parcel.js打包出错到选择nvm的全部过程
Jan 23 #Javascript
浅谈vue项目重构技术要点和总结
Jan 23 #Javascript
bootstrap fileinput插件实现预览上传照片功能
Jan 23 #Javascript
You might like
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
php随机抽奖实例分析
2015/03/04 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
javascript 闭包
2011/09/15 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
pm2 部署 node的三种方法示例
2017/10/20 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
用pycharm开发django项目示例代码
2019/06/13 Python
Python实现最常见加密方式详解
2019/07/13 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
python str字符串转uuid实例
2020/03/03 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
轻松制作精彩视频:Animoto
2018/09/19 全球购物
缴纳养老保险的证明
2014/01/10 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
单位综合评价意见
2015/06/05 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
Python基础知识学习之类的继承
2021/05/31 Python
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸