首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular 2如何通过可观测数据获取setInterval上的mouseX?

Angular 2是一种流行的前端开发框架,它提供了一种便捷的方式来构建现代化的Web应用程序。在Angular 2中,可以通过可观测数据来获取setInterval上的mouseX。

首先,我们需要在Angular 2应用程序中引入Observable对象和相关的操作符。可以通过以下方式导入:

代码语言:txt
复制
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/operator/map';

接下来,我们可以使用Observable对象的fromEvent方法来创建一个可观测的鼠标移动事件。然后,使用map操作符来获取鼠标的X坐标。代码示例如下:

代码语言:txt
复制
const mouseMove$ = Observable.fromEvent(document, 'mousemove')
  .map((event: MouseEvent) => event.clientX);

在上述代码中,我们创建了一个名为mouseMove$的可观测对象,它会在鼠标移动时发出事件。通过map操作符,我们将鼠标事件转换为鼠标的X坐标。

接下来,我们可以使用Angular 2的依赖注入机制将mouseMove$注入到组件中。在组件的构造函数中,可以订阅mouseMove$并获取鼠标的X坐标。示例代码如下:

代码语言:txt
复制
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  template: `
    <div>
      Mouse X: {{ mouseX }}
    </div>
  `
})
export class AppComponent {
  mouseX: number;

  constructor() {
    mouseMove$.subscribe((x: number) => {
      this.mouseX = x;
    });
  }
}

在上述代码中,我们在组件的模板中使用了插值表达式来显示鼠标的X坐标。在组件的构造函数中,我们订阅了mouseMove$并将鼠标的X坐标赋值给mouseX属性。

至此,我们通过可观测数据成功获取了setInterval上的mouseX。这种方法可以用于实时监测鼠标位置的变化,并在Angular 2应用程序中进行相应的处理。

关于腾讯云相关产品和产品介绍链接地址,可以参考腾讯云官方文档或者咨询腾讯云的客服人员,以获取最新的信息和推荐。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

“穿透”层鼠标事件

标题可能不是一读让人容易明白,张图(转载) 需要实现如下效果,有一个浮动层,需要层级在它之下一个元素也能照常响应相应事件 ?...) 2、捕捉事件获取鼠标的位置X、Y,然后触发层级较低元素相应事件 (平时我们用调试工具选取页面中元素,高亮显示区域就是依据这个原理) 优点:兼容各浏览器 缺点:需要编写Javascript,效率并不高...这样获取有也有两种处理方法: 循环获取每一个元素位置,然后对比鼠标的X、Y,效率低,不推荐;这里推荐使用elementFromPoint(浏览器都支持),直接传入X、Y,便可直接获取相应DOM元素...比较折中办法是,针对非IE浏览器直接使用方案1,IE使用方案2进行优化。...这种应用场景,可能会是一个新产品上线了,需要引导用户如何去使用,会使用蒙板遮住整个页面,然后让某一元素可点击。

1.6K20
  • 实现Web端自定义截屏

    在截图工具栏布局,一开始我想法是直接在canvas画布中把这些工具画出来,这样应该更容易交互一点,但是我看了相关api后,发现有点麻烦,把问题复杂化了。...,显示每个点击条目对应点击时样式,但是我在做时候却发现问题了,我点击时class名是动态,没发通过这种形式来弄,无奈我只好选择dom操作形式来实现,点击时传$event到函数,获取当前点击项点击时...我们可以通过这些数据计算出框选区域宽高,如下所示。...(mouseStartY - mouseY, mouseStartX - mouseX) * 180) / Math.PI, // 通过atan2获取箭头角度 angle1 = ((angle...获取鼠标划过路径区域图像信息 * 2.

    2.5K20

    实现Web端自定义截屏

    截屏实现思路 通过上述截屏流程,我们便得到了下述实现思路: 获取当前可视区域内容,将其存储起来 为整个cnavas画布绘制蒙层 在获取内容中进行拖拽,绘制镂空选区 选择截图工具栏工具,选择画笔大小等信息...在截图工具栏布局,一开始我想法是直接在canvas画布中把这些工具画出来,这样应该更容易交互一点,但是我看了相关api后,发现有点麻烦,把问题复杂化了。...我们来看下如何使用历史记录来解决这个问题。...,即可解决图形重复绘制问题,接下来我们看下解决后绘制效果,如下所示: 实现矩形绘制 在前面的分析中,我们拿到了鼠标的起始点坐标和鼠标移动时坐标,我们可以通过这些数据计算出框选区域宽高,如下所示...(mouseStartY - mouseY, mouseStartX - mouseX) * 180) / Math.PI, // 通过atan2获取箭头角度 angle1 = ((angle

    2.5K30

    Angularjs1.X进阶笔记(1)—两种不同双向数据绑定

    1.1数据从html流向controller 也就是从视图层流向模型层,原生html中需要使用表单元素(例如input标签)来收集用户输入信息,Angularjs中通过在表单元素使用ng-model标签...这里就是 Angularjs1.X双向数据绑定中第一个坑 ,你会发现$scope绑定数据模型和html中显示内容有时候并不是实时关联。这其实和Angularjs1.X执行机制有关系。...那么此处问题其实就在于,在setInterval回调函数中去修改数据模型值时,没有触发$apply()方法来更新视图,而通过调用Angularjs封装ng-*方法(例如ng-click点击方法)...解决方案2 如果依然使用javascript原生定时方法,那么则需要在修改完视图数据模型后,手动调用$scope.$apply()方法来将数据模型变动同步到html页面中。 二....下面的实例中,我们将看看controller中数据模型$scope.testInfo.content值与自定义指令中scope.pagination如何相互影响,是否如定义所说这里绑定真的是双向

    3.5K20

    使用 JavaScript 实现简单拖拽

    拖动鼠标,触发 mousemove,不断获取鼠标的位置,并通过计算重新确定元素位置 释放师表,触发 mouseup,结束拖拽,确定元素位置并更新 被拖拽元素必须是相对父元素定位,或者是绝对定位...在 document 对象绑定 mousemove 和 mouseup 事件,不在拖拽元素绑定是因为当鼠标移动太快而超出元素范围时会停止拖拽,而绑定在 document 则可以避免这样事情发生...mouseX / mouseY 是通过 getMouseXY 函数获得鼠标的坐标。 offsetX/ offsetY 是鼠标相对于元素坐标(左上角坐标)坐标。...,这里是 document 减去元素大小(元素不会超出移动范围)。...Math.min 使得元素不会超出移动访问右边界(元素 x 坐标不会超过 width),Math.max 使得元素不会超出移动范围左边界(元素 x 坐标不小于 0)。

    1.5K40

    详解ANGULAR2组件中变化检测机制(对比ANGULAR1脏检测)

    Angular 2 编译器为每个组件自动创建变化检测器,而且最终生成这些代码 JavaScript VM友好代码。...这也是为什么新变化检测是快速 (相比于 Angular 1.x $digest)。基本,每个组件可以在几毫秒内执行数万次检测。因此你应用程序可以快速执行,而无需调整性能。...变化检测策略 在 Angular 2 中我们可以在定义组件 metadata 信息时,设定每个组件变化检测策略。...ChangeDetectorRef ChangeDetectorRef 是组件变化检测器引用,我们可以在组件中通过依赖注入方式来获取该对象: import { ChangeDetectorRef...我们看到在 ngOnInit 钩子中,我们通过 setInterval 定时器,每隔一秒钟更新计数值同时调用 ChangeDetectorRef 对象 markForCheck() 方法,来标识该组件在下一个变化检测周期

    2.9K90

    Angular进阶教程2-

    组件\color{#0abb3c}{组件}组件不应该直接获取或保存数据,它们应该聚焦于展示数据,而把数据访问和处理职责委托给某个服务\color{#0abb3c}{服务}服务。...那面对组件和服务之间关系,该如何处理他们之间依赖关系呢?Angular就引入了依赖注入框架\color{#0abb3c}{依赖注入框架}依赖注入框架去解决这件事情。...依赖注入使用 创建注入服务: import { Injectable } from '@angular/core'; // @Injectable()装饰器,是告诉Angular这是一个可供注入服务...如果你在组件中\color{#0abb3c}{组件中}组件中数据\color{#0abb3c}{元数据}元数据定义了providers,那么angular会根据providers为这个组件创建一个注入器...SubjectAngular常见作用: 可以在Angular通过service来实现不同组件,或者不同模块之间传值 // 定义公共用于数据存储service,文件名是(eg:xampleStore.service.ts

    4.1K30

    前端三大框架vue,angular,react大杂烩

    React-单向数据流    MVVM流Angular和Vue,都是通过类似模板语法,描述界面状态与数据绑定关系,然后通过内部转换,把这个结构建立起来,当界面发生变化时候,按照配置规则去更新相应数据...Virtual DOM:    提供了函数式方法描述视图,它不使用数据观察机制,每次更新都会重新渲染整个应用,因此从定义保证了视图与数据同步。...其实也不是那么简单。相比之下,Vue由于采用依赖追踪,默认就是优化状态:动了多少数据,就触发多少更新,不多也不少。React 和 Angular 2 都有服务端渲染和原生渲染功能。...-> Angular2    Angular1使用依赖注入来解决模块之间依赖问题,模块几乎都依赖于注入容器以及其他相关功能。...三、我们如何选?    年轻程序员都是好奇猫,玩过一个又一个前端框架。从毛球弄出一条条线,玩啊玩,最后这一个个框架在脑子里搅浆糊。

    3K90

    Processing之矢量SVG用法一览

    本文是小菜一篇关于在 Processing 中使用 SVG 学习笔记,一起来跟着小菜来看看吧:) 读懂 SVG 文件 SVG 是一种基于 XML 语法图像格式,全称是缩放矢量图(Scalable...300); } 2)缩放 SVG 例子中使用mouseX映射到缩放系数zoom ,区间范围为0.1-4.5,然后通过scale(zoom) 来实现 svg 缩放。...这些形状中每一个(称为“子”)都有自己名称,可用于从“父”文件中提取它。此示例加载美国地图并通过从两个州提取数据来创建两个新 PShape 对象。...- uk.width/2, height/2- uk.height/2); // 获取到所有子形状个数 int children = uk.getChildCount(); // 遍历子形状...()函数在屏幕绘制时候保存 SVG。

    2.3K60

    React 结合 Rxjs 使用,管理数据

    ---- 前言 在使用 React 过程中,我们需要对接口返回数据进行数据存储管理。...Rxjs 是什么 Rxjs 是一个用于处理异步事件库,通过使用 observable 序列来编写异步和基于事件程序,实际应用场景有把请求封装成 observable,通过一些基本操作符,比如 map...比如我们之前讲解 了解 Angular 开发内容 - 服务 Service 和 Rxjs 中怎么处理和抓取错误。当然,Rxjs 还可以用来管理数据,在组件中传递数据~这是我们本文需要了解内容。...下面,我们以获取用户登陆信息为例子,演示如何使用 rxjs 管理数据,在 vue 中同理~ PS angular-cli 项目中已经默认集成了 TypeScript 形式 Rxjs,请参考 了解...Angular 开发内容 - 服务 Service 写法使用 我们新建一个数据管理 javascript 文件: // src/service/data-manage.js import {

    1.7K30

    前端三大框架vue,angular,react大杂烩

    React-单向数据流    MVVM流Angular和Vue,都是通过类似模板语法,描述界面状态与数据绑定关系,然后通过内部转换,把这个结构建立起来,当界面发生变化时候,按照配置规则去更新相应数据...Virtual DOM:    提供了函数式方法描述视图,它不使用数据观察机制,每次更新都会重新渲染整个应用,因此从定义保证了视图与数据同步。...其实也不是那么简单。相比之下,Vue由于采用依赖追踪,默认就是优化状态:动了多少数据,就触发多少更新,不多也不少。React 和 Angular 2 都有服务端渲染和原生渲染功能。...-> Angular2    Angular1使用依赖注入来解决模块之间依赖问题,模块几乎都依赖于注入容器以及其他相关功能。...三、我们如何选?    年轻程序员都是好奇猫,玩过一个又一个前端框架。从毛球弄出一条条线,玩啊玩,最后这一个个框架在脑子里搅浆糊。

    2.1K60

    React 展示组件与容器组件(英译)

    在哪里放置数据,组件间变化如何通信或如何管理状态?问题答案往往是与场景相关,也有时候只是跟平常使用 react 库来做练习与实验有关。...通过使用setInterval,我们每秒更新状态,组件被重新渲染。 为了使它看起来像一个真正时钟,我们使用两个辅助方法 —— _formatTime和_updateTime。..._formatTime实际是做两件事 —— 它从日期对象中提取所需信息,并确保这些值始终为两位数。 这看起来没问题,但如果提取方法不是这个组件一部分,这将是很好。...容器 容器知道数据,知道数据形态以及数据从何而来。 他们知道事务如何运作细节或者说所谓业务逻辑。 它们接收信息并对其进行格式化,以便由展示组件简单地使用。...@ivweb 前端开发框架简介:angular和react 容器健康检查详解

    2.9K00

    深度解析 Vue MVVM 原理实现

    ViewModel层通过双向数据绑定将View层和Model层连接了起来,使得View层和Model层同步工作完全是自动。 因此开发者只需关注业务逻辑,无需手动操作DOM。 ?...ViewModel层通过双向数据绑定将View层和Model层连接了起来,使得View层和Model层同步工作完全是自动。...实现数据绑定做法有大致如下几种: 脏值检查(angular.js) 数据劫持(vue.js) 发布者-订阅者模式(backbone.js) 这里大致说下脏值检查: angular.js 是通过脏值检测方式比对数据是否有变更...,来决定是否更新视图,最简单方式就是通过 setInterval() 定时轮询检测数据变动,angular只有在指定事件触发时进入脏值检测,大致如下: DOM事件,譬如用户输入文本,点击按钮等。...要实现mvvm双向绑定,就必须要实现以下几点: 1.实现一个数据监听器Observer,能够对数据对象所有属性进行监听,如有变动拿到最新值并通知订阅者 2.实现一个指令解析器Compile,对每个元素节点指令进行扫描和解析

    1.5K20
    领券