js入门学习~ 运动应用小例-程序员宅基地

要实现的效果如下:

鼠标移入各个小方块,实现对应的效果(变宽,变高,移入透明,移出恢复)~~

(且各运动相互之前不干扰)  主要是练习多个物体的运动框架~~        

 

----------------------------------------------------js代码如下 -----------------------------------------------------

 

//执行函数
window.onload = function(){
  //声明控制变量
  var aDiv = document.getElementsByTagName('div');

  //遍历
  for(var i=0;i<aDiv.length;i++){
    //添加自定义属性
    aDiv[i].timer = null;

    //添加事件(由于每个具体事件是不同的,所以单独来控制)
    aDiv[0].onmouseover = function(){
      moveStart(this,'width',400);
    }
    aDiv[0].onmouseout = function(){
      moveStart(this,'width',200);
    }


    aDiv[1].onmouseover = function(){
      moveStart(this,'height',400);
    }
    aDiv[1].onmouseout = function(){
      moveStart(this,'height',200);
    }


    aDiv[2].onmouseover = function(){
      moveStart(this,'opacity',100);
    }
    aDiv[2].onmouseout = function(){
      moveStart(this,'opacity',30);
    }
  }
}

 

//getStyle  获取对象的全局style属性

function getStyle(obj,name){
  if(obj.currentStyle){
    return obj.currentStyle;
  }
  else{
    return getComputedStyle(obj,false)[name];
  }
}

//moveStart  运动函数 

function moveStart(obj,attribute,iTarget){
  //多个物体运动框架
  clearInterval(obj.timer);
  obj.timer = setInterval(function(){
  //声明
    var current = 0;
    if(attribute == 'opacity'){
      current = parseFloat(getStyle(obj,attribute))*100;
    }
    else{
      current = parseInt(getStyle(obj,attribute));
    }
    //缓冲速度
    var speed = (iTarget - current )/4;
    //上下取整
    speed = speed>0? Math.ceil(speed):Math.floor(speed);

    //静
    if(iTarget == current){
      clearInterval(obj.timer);
    }
    else{
      if(attribute == 'opacity'){
        obj.style.filter = 'alpha(opacity:'+(current+speed)+')';
        obj.style.opacity = (current + speed)/100;
      }
      else{
        obj.style[attribute] = current+speed+'px';
      }
    }

  },30);
}

 

---------------------------------------------------------------------------------

js的学习也有大半月了,进度还是很缓慢~~ 慢慢来了,还是基本功,编程基础不扎实, 慢慢来了~~

在原有学习计划上, 减少点打酱油时间, 多点看书事件,把js基础先补补~~   

 

转载于:https://www.cnblogs.com/fuyinsheng/p/5057800.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/day67794/article/details/101498408

智能推荐

API网关之动态路由_api路由-程序员宅基地

文章浏览阅读1.3k次。AIP网关 动态路由_api路由

强一致性 弱一致性 最终一致性-程序员宅基地

文章浏览阅读4.5k次,点赞4次,收藏22次。在足球比赛里,一个球员在一场比赛中进三个球,称之为帽子戏法(Hat-trick)。在分布式数据系统中,也有一个帽子原理(CAP Theorem),不过此帽子非彼帽子。CAP原理中,有三个要素:一致性(Consistency)可用性(Availability)分区容忍性(Partition tolerance)CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分..._强一致性 弱一致性 最终一致性

Android 相册图库功能,按时间排序_android 加载网络图片列表时间轴相册-程序员宅基地

文章浏览阅读8.6k次,点赞4次,收藏21次。TimeAlbum 时间相册功能说明1、图片和视频资源根据日期排序显示。 2、图片视频预览功能,图片、视频预览带缓存功能。 3、单个图片或视频可进行删除及分享操作。 4、多张图片进行分享功能,多张图片和视频进行删除功能。 5、Decoration可自定义扩展。 6、图片显示可自定义扩展。 7、图片视频可自定义预览操作。依赖如何使用只需要继承AlbumFr..._android 加载网络图片列表时间轴相册

echarts动态时间轴,以秒为单位更新_echarts实现以秒为单位的动态折线图显示-程序员宅基地

文章浏览阅读2.2w次。echarts官网上的案例是按天来更新数据的http://echarts.baidu.com/demo.html#dynamic-data2 现在我需要改成以秒为单位动态刷新的案例,类似于股票实时刷新的那种,代码位置http://download.csdn.net/download/u013720726/9963108_echarts实现以秒为单位的动态折线图显示

macOS VSCode 配置 Go 编程环境_failed to run "go env env,-json,goprivate,gomod,go-程序员宅基地

文章浏览阅读1.5k次。macOS VSCode 配置 Go 编程环境笔者使用 macOS BigSur 安装完 Go 1.16.6 和 VSCode Go插件,然后运行时,往往会报诸如下面的错误:build esc: cannot load xxx : malformed module path “xxx”: missing dot in first path elementwarning: GOPATH set to GOROOT (/Users/xxx/go/) has no effect实际上,这都是由于 GO_failed to run "go env env,-json,goprivate,gomod,gowork,goenv,gotoolchain": s

C++多线程并发(三)---线程同步之条件变量_线程同步condition variables-程序员宅基地

文章浏览阅读1.7w次,点赞66次,收藏303次。一、何为条件变量在前一篇文章《C++多线程并发编程(二)—线程同步之互斥锁》中解释了线程同步的原理和实现,使用互斥锁解决数据竞争访问问题,算是线程同步的加锁原语,用于排他性的访问共享数据。我们在使用mutex时,一般都会期望加锁不要阻塞,总是能立刻拿到锁,然后尽快访问数据,用完之后尽快解锁,这样才能不影响并发性和性能。如果需要等待某个条件的成立,我们就该使用条件变量(condition var..._线程同步condition variables

随便推点

SQL语句操作优先级顺序_inner left优先级-程序员宅基地

文章浏览阅读1.7w次,点赞4次,收藏18次。SQL语句操作优先级顺序原文所在SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回_inner left优先级

C51单片机:点击一次按键,实现LED显示状态的亮灭转变_单片机按键按一次亮一个灯-程序员宅基地

文章浏览阅读9.1k次,点赞3次,收藏30次。#include <REGX52.H>sbit led=P1^0;//p1.0口接ledsbit button=P3^0;//p3.0口接控制int i,j;//整数i,jvoid main( )//主函数{ led=1;//led初始状态 while(1)//循环 { if(button==0)//按下开关 { for(i=0;i<10;i++);//延时去抖 while(button==0);//检测松手 l._单片机按键按一次亮一个灯

Python 爬取红酒网站https://www.vivino.com_vivino网站爬虫-程序员宅基地

文章浏览阅读2.6w次。用到了进程池,代理import requestsimport jsonimport jsonpathimport pymysqlimport queuefrom multiprocessing import Poolimport randomrequests.packages.urllib3.disable_warnings()# 创建连接db = pymysql.c..._vivino网站爬虫

nginx中try_files $uri $uri/ /index.html的作用 和 $uri的含义

的含义是:首先尝试按照请求的URI去寻找对应的文件,如果找不到,再尝试将请求作为目录处理,如果还是找不到,最后就返回。这对于单页应用来说非常有用,因为无论用户请求的是什么URL,服务器都会返回同一个HTML文件(即。:这是Nginx内置的一个变量,代表当前请求的URI,不包括参数部分。例如,如果请求的URL是。:尝试将请求作为目录处理,如果这个目录存在,Nginx会试图返回该目录下的默认文件(通常是。这句话是Nginx服务器配置中的一条指令,用于设置处理请求的策略。都无法找到对应的文件或目录,那么就返回。

KUKA机器人KR3 R540维护保养——更换齿形带

我们知道机器人长时间运行后,部分轴的齿形带会发生磨损,张力也会发生变化,这时就需要更换齿形带。本篇文章还是以KUKA机器人KR3 R540的A5轴为例,对KUKA机器人更换轴A2、A3、A5齿形带的操作方法进行介绍,有需要的可以参考。4、从齿形带轮上取下旧的齿形带A5。2、接下来用T10规格的内梅花扳手将盖罩A5上的4 颗螺丝拧出,放到指定位置,易于保管。1、我们前期需要准备一些工具:开口扳手(7毫米)、内六角梅花扳手、内六角扳手。三、对机器人A2、A3轴齿形带的更换方法步骤和以上类似。

【Qt QML】QLibrary加载共享库中的类

QLibrary是一个用于加载动态链接库(或称为共享库)的类。它提供了一种独立于平台的方式来访问库中的功能。在QLibrary中,可以通过构造函数或setFileName()方法设置要加载的库文件名。当加载库文件时,QLibrary会搜索所有平台特定的库位置,除非传入的文件名具有绝对路径。如果传入的文件名具有绝对路径,那么会首先尝试加载该目录。如果该文件找不到,QLibrary会使用不同的平台特定的文件前缀或后缀再次尝试。