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 相关文章推荐
jquery 插件 任意位置浮动固定层
Dec 25 Javascript
jQuery autocomplete插件修改
Apr 17 Javascript
js 动态选中下拉框
Nov 26 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
Apr 02 Javascript
javascript中callee与caller的用法和应用场景
Dec 08 Javascript
javascript获取form里的表单元素的示例代码
Feb 14 Javascript
Javascript访问器属性实例分析
Dec 30 Javascript
js使用setTimeout实现定时炸弹的方法
Apr 10 Javascript
微信小程序  modal弹框组件详解
Oct 27 Javascript
利用angular.copy取消变量的双向绑定与解析
Nov 25 Javascript
关于Vue.nextTick()的正确使用方法浅析
Aug 25 Javascript
浅谈angular4生命周期钩子
Sep 05 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
PHP捕获Fatal error错误的方法
2014/06/11 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
一些mootools的学习资源
2010/02/07 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
Python中集合类型(set)学习小结
2015/01/28 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
主管会计岗位职责
2014/03/13 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
建筑结构施工求职信
2014/07/11 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
写给导师的自荐信
2015/03/06 职场文书
先进个人自荐书
2015/03/06 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
springcloud整合seata
2022/05/20 Java/Android