【06-23】js动画学习笔记01
<html>
<head>
<style>
* {
margin:0;
padding:0;
}
#div1{
width:200px;
height:200px;
background:red;
position:relative;
left:-200px;
top:0;
}
#div1 span{
width:20px;
height:50px;
background:skyblue;
position:absolute;
left:200px;
top:75px;
} #testOpacity{
margin-top:50px;
width:200px;
height:200px;
background:red;
filter:alpha(opacity:30);
opacity:0.3
} #bufferAction{
margin-top:50px;
width:200px;
height:200px;
background:red;
position:relative;
left:-200px;
top:0;
}
#bufferAction span{
width:20px;
height:50px;
background:skyblue;
position:absolute;
left:200px;
top:75px;
} </style>
<title>js动画test</title>
</head>
<body>
<div id="div1">
<span id="share">分享</span>
</div>
<script>
var div1=document.getElementById("div1");
div1.onmouseover=function(){
startMove(div1,10,0);
}
div1.onmouseleave=function(){
startMove(div1,-10,-200);
}
var timer=null;
/*使用offsetLeft实现滑动动画*/
function startMove(obj,speed,target){
clearInterval(timer);
timer=setInterval(function(){
if(obj.offsetLeft==target){
clearInterval(timer);
}else{
obj.style.left=obj.offsetLeft+speed+"px";
}
},30);
}
</script> <div id="testOpacity">
</div>
<script>
var opacityObj=document.getElementById("testOpacity");
opacityObj.onmouseover=function(){
changeOpacity(this,5,90);
}
opacityObj.onmouseleave=function(){
changeOpacity(this,5,10);
}
var opacityTimer=null;
/*使用opacity实现渐变*/
function changeOpacity(obj,speed,target){
clearInterval(opacityTimer);
var currentOpacity=obj.style.opacity*100;
opacityTimer=setInterval(function(){
if(target==currentOpacity){
clearInterval(opacityTimer);
}else{
if(target>currentOpacity){
speed=Math.abs(speed);
}else{
speed=-Math.abs(speed);
}
currentOpacity+=speed;
obj.style.opacity=currentOpacity/100;
obj.style.filter='alpha(opacity:'+currentOpacity+')';
}
},30);
}
</script> <div id="bufferAction">
<span id="bufferActionSpan">分享</span>
</div>
<script>
var opacityObj=document.getElementById("bufferAction");
opacityObj.onmouseover=function(){
bufferAction(this,10,0);
}
opacityObj.onmouseleave=function(){
bufferAction(this,10,-200);
}
var bufferTimer=null;
/*模拟渐进效果*/
function bufferAction(obj,speed,target){
clearInterval(bufferTimer);
speed=speed>0? Math.ceil(speed):Math.floor(speed);
bufferTimer=setInterval(function(){
if(target==obj.offsetLeft){
clearInterval(bufferTimer);
}else{
if(target>obj.offsetLeft){
speed=Math.ceil((target-obj.offsetLeft)/20);
}else{
speed=Math.floor((target-obj.offsetLeft)/20);
}
obj.style.left=obj.offsetLeft+speed+"px";
}
},30);
}
</script> </body> </html>
/*
offsetLeft和left的区别:
offsetLeft获取相对于父对象的左边距
left获取或设置相对于具有定位属性(position定义为relative)的父对象的左边距 offsetLeft返回的数值,left返回的是带px的字符串
style.left是读写的,offsetLeft是只读的
*/
/*
css布局:
position:absolute相对于使用了position的父级元素,如果没有则以body为参照 relative相对定位,相对于原来的位置,但是原来的位置仍然保留
absolute定位,相对于最近的非标准定位,原来的位置消失,被后边的位置所顶替 只用absolute和relative定位多样的页面,真是漂亮。 */
/*
window.opener:
window.opener可以获取转到当前页面的父页面window对象,可以通过其调用父页面的所有对象和方法
博客园的tag跳转连接:
window.open('/tags/list?id=*****','_blank','width=300,height=500,toolbars=yes,resizable=yes,scrollbars=yes,left='+leftVal+',top='+topVal); 刷新当前页可以用:
window.location="javascript:document.location.reload()";
*/
【06-23】js动画学习笔记01的更多相关文章
- js动画学习笔记
<html> <head> <meta charest="utf-8"> <title>test</title> < ...
- JS数组学习笔记
原文:JS数组学习笔记 最近在备课数组,发现很多ES5的方法平时很少用到.细节比较多,自己做了大量例子和整理,希望对大家了解JavaScript中的Array有所帮助. 概念 数组是值的有序集合.每个 ...
- Redis:学习笔记-01
Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ...
- 软件测试之loadrunner学习笔记-01事务
loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...
- Android动画学习笔记-Android Animation
Android动画学习笔记-Android Animation 3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...
- js再学习笔记
#js再学习笔记 ##基本 1.js严格区分大小写 2.js末尾的分号可加,也可不加 3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...
- Unity Shader序列帧动画学习笔记
Unity Shader序列帧动画学习笔记 关于无限播放序列帧动画的一点问题 在学shader的序列帧动画时,书上写了这样一段代码: fixed4 frag(v2f i){ // 获得整数时间 flo ...
- C++ GUI Qt4学习笔记01
C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...
- SaToken学习笔记-01
SaToken学习笔记-01 SaToken版本为1.18 如果有排版方面的错误,请查看:传送门 springboot集成 根据官网步骤maven导入依赖 <dependency> < ...
随机推荐
- 原生js事件的添加和删除
在IE浏览器中添加或删除事件用attachEvent.detachEvent.在其他标准浏览器中则用addEventListener.removeEventListener.下面的对事件的添加和删除做 ...
- Fiddler进行模拟Post提交数据,总为null解决方式
Fiddler模拟post提交时总是为空,解决办法 如果是表单提交则要在header加上 ContentType:application/x-www-form-urlencoded 如果是要post提 ...
- 【转】App架构设计经验谈:接口的设计
App架构设计经验谈:接口的设计 App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用REST ...
- [django]l利用xlrd实现xls文件导入数据
代码: #coding:utf-8 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.sett ...
- 云与备份之(1):VMware虚机备份和恢复
本系列文章会介绍云与备份之间的关系,包括: (1)VMware 虚机备份和恢复 (2)KVM 虚机备份和恢复 (3)云与备份 (4)OpenStack 与备份 (5)公有云与备份 1. 与备份有关的V ...
- 基于Zabbix IPMI监控服务器硬件状况
基于Zabbix IPMI监控服务器硬件状况 zabbix ipmi 公司有多个分部,且机房没有专业值班,机房等级不够.在这种情况下,又想实时监控机房环境,于是使用IPMI方式来达到目的.由于之前已经 ...
- 查看eclipse web项目中jsp编译后的servlet源文件【转】【JSP】
eclipse中,jsp编译后 servlet源文件的位置为: F:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wor ...
- Socket
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 以J2SDK-1.3为例,Socket和ServerSocket类库位于 ...
- java环境变量详细配置步骤
1 下载jdk. a 官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 本来 ...
- 第二天----列表、元组、字符串、算数运算、字典、while
列表 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 基本操作: 索引切片追加删除长度切片循环包含 创建.查看列表: 列表中的数字不要加引号,列表的索引从0开始: lis ...