监控鼠标的位置点击实现圆形扩散动画

首先看效果图如下:

一、要实现如下的效果我们先分析都要什么?

1:首先我们要先实现这个动画扩散效果。

2:然后当鼠标点击该标签时,你需要在他的下面新增一个标签并把这个动画给这个新增标签。

3:其次我们要监控鼠标的位置。

4:在其次找到被点击的标签的位置与鼠标点击位置相减就是这个做动画的标签的初始位置。

5:让这个标签到相应位置之后再做动画。

二、实现效果

1:页面增加一个div标签改变他的样式

.bg{
      background: silver;
      height: 50px;
      width: 200px;
      overflow: hidden;
      position: relative;
      top: 100px;
      left: 100px;
    }
<div class="bg"></div>

2:实现圆形扩散效果

cs3新增了酷炫的动画,就拿animation来说它可以让一个元素旋转、放大、平移....,而我们这里要用到的就是放大(缩小)scale(x,y),他有两个参数x和y,而x是在x轴放大(缩小)的倍数,y是在y轴上放大(缩小)的倍数。当你只有一个参数时默认就是x y放大(缩小)同样的倍数代码如下。

.sp{
      position: absolute;
      top: 0px;
      left: 0px;
      background: skyblue;
      width:1px;
      height: 1px;
      border-radius: 0.5px;
      animation: anima 2s;
    }
    @keyframes anima{
    from{transform: scale(1);
    opacity: 1;}
    to{ transform: scale(400);
    opacity: 0;}
   }

你只需要在这个div上绑定事件每点击一次新增加一个span标签把这个类给span即可(这里注意每次新增span标签之前要把上次的span标签移除)。

3:获得鼠标点击的位置。

通过jQuery给我们提供的event.pageX,event.pageY来获得当前鼠标点击的位置。

我们在这个div上绑定事件来获得鼠标点击的位置代码如下:

$(‘.bg‘).bind(‘mousedown‘,function(e){
         x= e.pageX ;
         y= e.pageY;
        console.log(x);
        console.log(y);
      });

输出结果如下:

可以看出我们已经获得了鼠标点击的位置。

4:获得当前标签的位置

我们还要获得这个div相对于窗口的偏移位置,然后与鼠标点击位置相减获得我们做动画的span标签的top和left值。

jQuery为我们提供了offset方法这个方法可以获得当前元素相对于窗口的偏移位置,这个位置是相对于匹配元素的左上角的位置用法如下。

$(‘.bg‘).click(function(){
            var d= $(this).offset();
             console.log(d.left);
             console.log(d.top);
          })

5:实现最终效果

这里我们已经获得了两个位置,他们相减之后就是做动画的span的top和left。我把它封装到一个move函数里面你只需要给他传递一个id就能让相应的标签有这个动画效果。代码如下:

function spread(id){
      var x;
      var y;
      $(id).bind(‘mousedown‘,function(e){
         x= e.pageX ;
         y= e.pageY;

      });

      $(id).click(function(){
        var d= $(this).offset();
         x=x-d.left;
         y=y-d.top;
      $(‘span‘).remove()
      $(id).append("<span class=sp></span>");
      $(‘.sp‘).css({
          top:y,
          left:x,
        })
      })
    }
   spread(‘.bg‘);

好了效果已经实现了有没有很酷炫!0.0

时间: 2024-08-03 21:22:35

监控鼠标的位置点击实现圆形扩散动画的相关文章

html点击圆形扩散显示界面特效

html点击圆形扩散显示界面特效 开场白 效果 用到的核心代码 思考 探索 源码 兼容性问题 开场白 经常看到某些app有点击扩散的特效,有些当做扩散显示界面,有些扩散改变主题颜色,想在网页上实现一下,所以就有了这个. 效果 不想听逼逼的直接去源码 用到的核心代码 css的样式 overflow:hidden;/*隐藏超出部分*/ position:fixed;/*用于悬浮*/ jquery的动画 $("#id").animate() 思考 先创建一个圆形div和一个按钮: <d

opengl编程 : 利用鼠标的位置跟踪一条在世界坐标系中的射线

如何用鼠标与三维世界的物体交互呢? 想了一种方法:将鼠标在二维屏幕的位置转化为三维世界坐标系的位置,记该位置为pm(mouse position).我们在窗口中看到的内容都是基于观察坐标系的, 鼠标的位置可以看作是观察坐标系中,投影可见体的前平面中的一个位置,如何找到这样的一个位置呢? 可以肯定,pm·.z的值就是近平面的值,这点是没有疑问的,因为pm·就在近平面上. 我们假定投影平面和窗口有相同的宽高比,这些不会有失真出现. 接下来找pm·.x和pm·.y 1.将屏幕 0 - window_h

MFC中状态栏显示鼠标坐标位置

原文:MFC中状态栏显示鼠标坐标位置,蝈蝈 1,利用MFC向导创建一个应用工程ewq. 2,打开ResourceView,右击Menu菜单,插入Menu,在空白处双击,Caption中填入Point. 3,为Point设置下拉菜单,ID为ID_INDICATOR_POINT:Caption为point:Prompt为X:XXXX,Y:YYYY. 4,打开MainFrm.cpp,在indicators数组中的第二个位置添加ID_INDICATOR_POINT. 5,将MainFrm中的成员变量m_

js获取鼠标的位置

<!doctype html><html><head><meta charset="utf-8"><title>获取鼠标的位置</title><script>function mouseMove(ev){Ev= ev || window.event;var mousePos = mouseCoords(ev);document.getElementById("xxx").value

pyqt 右击+指定位置点击例子学习

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' import sys from PyQt4.QtCore import Qt from PyQt4 import QtGui,QtCore,Qt from rol import Ui_Form class Example(QtGui.QDialog,Ui_Form): def __init__(self,parnet=None): super(Example, se

Range对象理解,浏览器兼容性,获取鼠标光标位置

一.关于浏览器的兼容性 目前主要有3种关于range的类似的对象,分别是W3C range 对象,Mozzlia selection ,ie TextRange 关于这三种的区别,请查看文档 http://www.quirksmode.org/dom/w3c_range.html 这里面对这三个是说的很清楚的 可以看出 Mozilla 的 range 是一个selection对象 ,而在ie下 range 是一个 text Range 这个和Mozilla是完全不同的,所以需要为这两种类型的ra

基于jQuery鼠标滑过点击事件音效试听

基于jQuery鼠标滑过点击事件音效试听.这是一款非常简单实用的HTML元素发音音频特效jQuery插件.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="wrapper"> <h1 class="sub-section__title">eventType : </h1> <div class="center" style="margin-top: 40

VBS控制鼠标移动和点击(附源代码下载)

森思:想用vbs来控制鼠标的移动和点击,虽然按键精灵可以做到,但做这么简单的事情不想启动那么大一个程序,所以自己用VC写了一个小程序,可以让VBS来控制鼠标移动和点击. 用法: 移动鼠标到桌面坐标200,50的vbs命令如下: CreateObject("WScript.Shell").Run "mouse.exe m,200,50" 点击鼠标左键的vbs命令如下: CreateObject("WScript.Shell").Run "

Winform中控件,鼠标坐标位置计算

Winform中获得鼠标位置的 (是鼠标到屏幕左上角的位置): pt = Cursor.Position; 获得控件距屏幕位置(是控件到屏幕左上角位置) PointToScreen(this.drawingPanel.Location 获得控件距离Form窗体位置: this.drawingPanel.Location 这里需注意鼠标的位置是到屏幕左上角距离,而不是到Form窗体的距离,这里取部分代码截图 //滑动前鼠标距离Panel左上角位置距离                 SizeF s