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 相关文章推荐
禁止js文件缓存的代码
Apr 09 Javascript
如何解决Jquery库及其他库之间的$命名冲突
Sep 15 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
查找页面中所有类为test的结点的方法
Mar 28 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
探讨JavaScript语句的执行过程
Jan 28 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
Jul 25 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
Jul 06 Javascript
微信小程序实现手指触摸画板
Jul 09 Javascript
原生JS使用Canvas实现拖拽式绘图功能
Jun 05 Javascript
详解django模板与vue.js冲突问题
Jul 07 Javascript
vue项目中微信登录的实现操作
Sep 08 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安全配置
2006/10/09 PHP
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
PHP 递归效率分析
2009/11/24 PHP
php产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
php常用的工具开发整理
2019/09/26 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
Python urlopen 使用小示例
2008/09/06 Python
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
Python标准库sched模块使用指南
2017/07/06 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
Python通过文本和图片生成词云图
2020/05/21 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
结婚喜宴家长答谢词
2014/01/15 职场文书
幼师求职自荐信
2015/03/26 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书