博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript学习-原生javascript的小特效(改变透明度效果)
阅读量:5047 次
发布时间:2019-06-12

本文共 1515 字,大约阅读时间需要 5 分钟。

前些日子看了个视频所以就模仿它的技术来为大家做出几个简单的JS小特效 ( 以下效果兼容IE5+ IE5-以下没有测试哦)

今天为大家演示的效果是一个div,鼠标经过的时候透明度为100%,鼠标移出的时候透明度变为原来的50%。

也许大家会问现在这么多流行的JS框架和CSS3的transition配合伪类:hover都可以实现的效果干嘛要用这么老套的方式呢?没错的,现在用CSS3,JS框架都是可以轻松的实现以下的效果,但是为了学习原生的javascript的童鞋,用CSS3和JS框架实现的就留给大家去实现了。现在我们还是多用原生的方法吧。

1:先给出HTML:

<body>

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

2:列出CSS:

<style type="text/css">  

body{margin: 0;padding: 0;}
div{background: red;width: 200px;height: 150px;opacity: 0.5;filter:alpha(opacity:50);  }
</style>

3:现在到了我们的JS部分

<script type="text/javascript">

     window.οnlοad=function(){   页面加载完执行这个匿名函数
      var div=document.getElementById("div1");   获取div
     div.οnmοuseοver=function(){  当鼠标经过这个div的时候执行onOut函数并传参数100
      onOut(100);
     }
      div.οnmοuseοut=function(){ 当鼠标离开这个div的时候执行onOut函数并传参数10
      onOut(10);
      }
     }
     var timer=null; 
      创建一个变量用来后面装定时器唯一的ID不明白定时器的童鞋可以看看我之前专门写的javascript定时器文章
     var opa=10; 定义一个原始的透明度这里和CSS中的定义一样
     function onOut(tart){   创建一个函数onOut
      var div=document.getElementById("div1");
      clearInterval(timer);  
      一开始触发这个函数的时候先把定时器都清空下,防止之前的定时器执行的时候再次触发该函数而叠加
      timer=setInterval(function(){ 创建一个变量用来后面装定时器唯一的ID不明白定时器的童鞋可以看看我之前专门写的javascript定时器文章
      var midd=0;   因为要有动画的效果要每隔一段时间都增加或者减少透明度,我们需要一个中中间变量,我们设置为0
        if(opa>tart){  比较模板透明都和当前透明度,来确定透明度的变化是增还是减
         midd=-10;   让当前透明都每次递减10
        }else{
        midd=10;  让当前透明都每次增加10
        }
        if(tart==opa){ 比较模板透明都和当前透明度,当他们相等的时候 ,就把定时器都清空
        clearInterval(timer); 
        }else{
        opa+=midd;  让透明度opa=opa+midd,然后把它赋值给当前div的透明度属性
        div.style.filter='alpha(opacity:'+opa+')';  兼容IE
        div.style.opacity=opa/100;
        }
      },10)
     }
</script>

转载于:https://www.cnblogs.com/xiaominwu/p/4348078.html

你可能感兴趣的文章
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
Python内置函数(29)——help
查看>>
机器学习系列-tensorflow-01-急切执行API
查看>>
SqlServer 遍历修改字段长度
查看>>
Eclipse快捷键:同时显示两个一模一样的代码窗口
查看>>
《架构之美》阅读笔记05
查看>>
《大道至简》读后感——论沟通的重要性
查看>>
JDBC基础篇(MYSQL)——使用statement执行DQL语句(select)
查看>>
关于React中props与state的一知半解
查看>>
java中Hashtable和HashMap的区别(转)
查看>>
关闭数据库
查看>>
webStrom智能提示忽略首字母大小写问题
查看>>
层叠加的五条叠加法则(一)
查看>>
设计模式六大原则(5):迪米特法则
查看>>
对Feature的操作插入添加删除
查看>>
javascript String
查看>>
ecshop 系统信息在哪个页面
查看>>
【转】码云source tree 提交超过100m 为什么大文件推不上去
查看>>
Oracle数据库的增、删、改、查
查看>>
MySql执行分析
查看>>