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 相关文章推荐
dojo 之基础篇(三)之向服务器发送数据
Mar 24 Javascript
js日期对象兼容性的处理方法
Jan 28 Javascript
JavaScript Array对象扩展indexOf()方法
May 09 Javascript
javascript表单验证和Window详解
Dec 11 Javascript
Bootstrap登陆注册页面开发教程
Jul 12 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
Aug 04 Javascript
Angular实现搜索框及价格上下限功能
Jan 19 Javascript
手动用webpack搭建第一个ReactApp的示例
Apr 11 Javascript
详解JS函数stack size计算方法
Jun 18 Javascript
记一次vue-webpack项目优化实践详解
Feb 17 Javascript
vue 中使用print.js导出pdf操作
Nov 13 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生成html分页列表的代码
2007/03/18 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
Zend Framework框架实现类似Google搜索分页效果
2016/11/25 PHP
JavaScript的Cookies
2008/01/16 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Python高并发和多线程有什么关系
2020/11/14 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
智利最大的网上商店:Linio智利
2016/11/24 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
书香校园活动方案
2014/02/28 职场文书
铲车司机岗位职责
2014/03/15 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
社区平安建设方案
2014/05/25 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
CSS预处理框架——Stylus
2021/04/21 HTML / CSS