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 相关文章推荐
Javascript 事件流和事件绑定
Jul 16 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
Mar 12 Javascript
JS格式化数字保留两位小数点示例代码
Oct 15 Javascript
jQuery中hasClass()方法用法实例
Jan 06 Javascript
js控制输入框获得和失去焦点时状态显示的方法
Jan 30 Javascript
解析JavaScript模仿块级作用域
Dec 29 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
Feb 06 Javascript
从零开始搭建webpack+react开发环境的详细步骤
May 18 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
Jun 13 Javascript
详解如何webpack使用DllPlugin
Sep 30 Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 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小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
php发送post请求的三种方法
2014/02/11 PHP
destoon常用的安全设置概述
2014/06/21 PHP
为你总结一些php信息函数
2015/10/21 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
JavaScript评论点赞功能的实现方法
2017/03/13 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
Python爬取读者并制作成PDF
2015/03/10 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
行政工作个人的自我评价
2014/02/13 职场文书
材料加工工程求职信
2014/02/19 职场文书
台风停课通知
2015/04/24 职场文书