javascript学习-原生javascript的小特效(改变透明度效果)
来源:互联网 发布:女生 软件测试 编辑:程序博客网 时间:2024/05/05 03:52
前些日子看了个视频所以就模仿它的技术来为大家做出几个简单的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.onload=function(){ 页面加载完执行这个匿名函数
var div=document.getElementById("div1"); 获取div
div.onmouseover=function(){ 当鼠标经过这个div的时候执行onOut函数并传参数100
onOut(100);
}
div.onmouseout=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>
- javascript学习-原生javascript的小特效(改变透明度效果)
- javascript学习-原生javascript的小特效(简单的运动效果)
- javascript学习-原生javascript的小特效(多物体运动效果)
- javascript学习-原生javascript的小特效(多个运动效果整理)
- javascript学习-原生javascript的小特效(原生javascript实现链式运动)
- javascript原生小练习(二)--轮播图滚动效果
- javascript动画特效 多透明度 源代码
- 原生javascript的动态效果demo
- Javascript原生动画效果的实现
- javascript图片小特效
- JavaScript小效果的实现(笔记)
- 原生JavaScript中动画与特效的实现原理
- javascript与原生的交互小知识
- JavaScript小特效---全选功能的实现
- 原生Javascript之拖曳效果
- 原生JavaScript实现幻灯片效果
- 网页特效、JavaScript经典效果
- javascript特效,信息滚动效果
- SharePoint中取得ACL和组中用户数量
- axis2+spring 发布service
- 配置Redmine的邮件通知功能
- 【LeetCode】Permutations
- java抽象类(abstract)
- javascript学习-原生javascript的小特效(改变透明度效果)
- 52Ajax 禁用缓存
- java play框架验证码
- andriod:labelfor异常
- cocoaPods删除步骤
- ALLOYUI JSON 转 DATATABLE
- java接口(interface)
- 在html页面中,想设置一个目录,连接到同一个页面的其他位置
- Android art new class 代码产生过程