GVKun编程网logo

Mac OS X 上的焦点跟随鼠标(加上自动抬起)(mac失去焦点)

24

在本文中,您将会了解到关于MacOSX上的焦点跟随鼠标的新资讯,同时我们还将为您解释加上自动抬起的相关在本文中,我们将带你探索MacOSX上的焦点跟随鼠标的奥秘,分析加上自动抬起的特点,并给出一些关于

在本文中,您将会了解到关于Mac OS X 上的焦点跟随鼠标的新资讯,同时我们还将为您解释加上自动抬起的相关在本文中,我们将带你探索Mac OS X 上的焦点跟随鼠标的奥秘,分析加上自动抬起的特点,并给出一些关于android鼠标图片不跟随鼠标焦点移动,总是居中显示,如何实现???、banner 跟随鼠标呈现视差效果、cocos 粒子同心圆 跟随鼠标、colorbox 跟随鼠标滚动的实用技巧。

本文目录一览:

Mac OS X 上的焦点跟随鼠标(加上自动抬起)(mac失去焦点)

Mac OS X 上的焦点跟随鼠标(加上自动抬起)(mac失去焦点)

(我不想听到我想要那个有多疯狂!:)

焦点跟随鼠标也称为点对焦点、指针焦点和(在某些实现中)马虎焦点。[添加其他术语,使其更易于搜索!] X-mouse

答案1

小编典典

我已经定期回到这个问题大约 10 年了,我终于找到了一个简单的解决方案:AutoRaise
https://github.com/sbmpost/AutoRaise

默认情况下,它启用焦点跟随鼠标和自动提升。您可以使用配置选项延迟自动升起。

它还具有他们所谓的“扭曲”功能,当您使用 Command-Tab
键进入窗口时,该功能可将鼠标指针居中。在我尝试之前我从不知道我需要这个,但是一旦我尝试过,我就不能没有它!

android鼠标图片不跟随鼠标焦点移动,总是居中显示,如何实现???

android鼠标图片不跟随鼠标焦点移动,总是居中显示,如何实现???

我现在要做一个东西,修改ics的源码,实现鼠标图片居中显示,而不是跟着焦点移动?怎么弄?

banner 跟随鼠标呈现视差效果

参考 Element 官网,利用 js / jq 和 css3, 实现某图片随着鼠标移动呈现的视差效果。


<!DOCTYPE html>
<html>

<head>
    <title>banner 跟随鼠标呈现视差效果</title>
    <meta charset="utf-8" />
    <style>
        * {
            transition: all .3s;
        }

        .perspective {
            perspective: 800px;
        }

        .preserve3d {
            position: relative;
            width: 500px;
            height: 400px;
            margin: 160px auto;
            background: #4b5cce url("http://data.banyanbbt.org/static/newimg/top/right.png") center no-repeat;
            background-size: 100% 100%;
            border-radius: 20px;
            transform-style: preserve-3d;
        }
    </style>
</head>

<body>
    <div>
        <div>
        </div>
    </div>

    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
    <script type="text/javascript">

        /* 原生js实现 */

        (function () {
            var imgPX = 0;
            var imgPY = 0;
            var divWidth = 0;
            var divHeight = 0;
            var flag = false; // 记录鼠标是否按下

            var preserve3d = document.querySelector(".preserve3d");

            console.log(preserve3d.offsetLeft, preserve3d.offsetTop)
            console.log(preserve3d.clientWidth, preserve3d.clientHeight)

            preserve3d.addEventListener("mouseenter", function (e) {
                flag = true;
                var evt = e || window.event;
                imgPX = preserve3d.offsetLeft;
                imgPY = preserve3d.offsetTop;
                divWidth = preserve3d.clientWidth;
                divHeight = preserve3d.clientHeight;

                document.addEventListener("mousemove", function (e) {
                    if (flag) {
                        var evt = e || window.event;
                        var mouseX = evt.clientX - imgPX;
                        var mouseY = evt.clientY - imgPY;
                        var X = mouseX - divWidth / 2;
                        var Y = divHeight / 2 - mouseY;
                        preserve3d.style.transform =
                            `rotateY(${ X / 20 }deg) rotateX(${ Y / 20 }deg)`
                    }
                });

                document.addEventListener("mouseout", function () {
                    flag = false;
                    preserve3d.style.transform = `rotateY(${ 0 }deg) rotateX(${ 0 }deg)`
                    document.removeEventListener("mouseout", function () {
                        flag = false;
                    });
                })

            });
        })();


        /* jq 实现 */

        // (function () {
        //     var imgPX = 0;
        //     var imgPY = 0;
        //     var divWidth = 0;
        //     var divHeight = 0;

        //     $(''.preserve3d'').on(''mouseenter'', function () {
        //         imgPX = $(this).offset().left;
        //         imgPY = $(this).offset().top;
        //         divWidth = $(this).outerWidth();
        //         divHeight = $(this).outerHeight();

        //         console.log($(this).offset().left, $(this).offset().top)

        //     }).on(''mousemove'', function (event) {
        //         var mouseX = event.pageX - imgPX;
        //         var mouseY = event.pageY - imgPY;
        //         var X = mouseX - divWidth / 2;
        //         var Y = divHeight / 2 - mouseY;
        //         $(this).css({
        //             "transform": "rotateY(" + X / 20 + "deg) " + "rotateX(" + Y / 20 + "deg) "
        //         });
        //     }).on(''mouseleave'', function () {
        //         $(this).css({
        //             "transform": "rotateY(0deg) rotateX(0deg)"
        //         })
        //     })
        // })();
    </script>
</body>

</html>

cocos 粒子同心圆 跟随鼠标

cocos 粒子同心圆 跟随鼠标

 

原文链接: cocos 粒子同心圆 跟随鼠标

上一篇: cocos 纯色圆节点

下一篇: cocos 简单时钟

仿照

https://zhuanlan.zhihu.com/p/317835918

 

效果

大一点的好看

 

 

 

 

基本思想

1, 给定节点随机的初始位置, 颜色, 速度

2, 每个节点更新时, 根据到原点的距离计算一个周期性的加速度

3, 根据加速度, 计算出一个衰减的速度

4, 根据这个衰减的速度更新节点位置

5, 在父级界面添加鼠标移动事件的监听, 修改原点位置

 

首先我们用这种方式手动更新位置, 那么物体停下来的时候一定是速度为0的, 然而物体受到的力又是周期性的, 如果不加入速度衰减, 那么物体一定不能停下来

在物体停留的位置, 所收到的力一定为0, 如果有偏移, 那么力会把物体拉到受力为0的位置, 震荡的过程中, 由于速度是衰减的, 所以最后速度会是0, 相当巧妙的思想!

我之前还以为是实现了一个力场, 怎么都没想明白为啥能停止, 不过用力场的话最后一定都是绕着圆心转的, 因为向心力的原因, 不可能静止

 

 

 

能用图片一定要用图片!!!!!

第一次每个圆使用mask+sprite单色实现, 然后一个元素就三个drawcall, 绘制5千节点简直不要太爽, 直接卡成狗

后面用一个单色图片, 通过代码设置颜色, 实现同样的随机色圆点, draw call只有2, 不会跟随节点数目变化

 

对于大量节点, 应该批量创建然后批量添加, 不要创建一个就添加一个和dom类似, 相同的操作进行合并批次处理

对于五千节点, 创建一个添加一个和全部创建后添加的时间, 好像只快了百分之十左右... 可能因为是同步的原因吧.....dom会快相当多

 

坐标系位置

一定要注意坐标系位置,

 

用对象在子组件中同步父节点数据

比如我们每个小圆点都要在每次update中计算到中心点的位置, 那么在父组件中监听鼠标位置, 然后使用函数set到子组件也是可以的, 但是子节点太多的情况下, 即使是一个简单的set函数也是有很大开销的, 我们可以在子组件初始化的时候传递一个对象, 然后在父组件中更新这个对象的值, 子组件通过对象取数据, 这样只需要在父组件中修改一次, 所有子组件都能同步到最新的位置

子组件, 其中部分数据参考https://zhuanlan.zhihu.com/p/317835918

之所以对距离加了一个很小的权重, 主要是因为cos函数x的变化时很微小的 0--pi/2, 不然会在小范围内产生很大的振动, 不可能收敛的

 

添加一个拖尾想着应该能好看一点....结果dc爆炸了, 卡死... 看来还是要自己实现一个... 

 

子组件生成一些随机数据, 然后根据原点位置, 修改自己的位置

const { ccclass, property } = cc._decorator;
const random = (min = 0, max = 10) => {
  return (Math.random() * (max - min) + min) | 0;
};
@ccclass
export default class NewClass extends cc.Component {
  @property(cc.Node)
  cell: cc.Node = null;
  @property(cc.Sprite)
  sprite: cc.Sprite = null;
  // 速度和加速度
  vx = 0;
  vy = 0;
  center = { x: 0, y: 0 };
  init(i, w, h, center) {
    const x = (Math.random() - 0.5) * w;
    const y = (Math.random() - 0.5) * h;
    this.center = center;
    this.node.x = i ? x : 0;
    this.node.y = i ? y : 0;
    const c = cc.Color(random(0, 255), random(0, 255), random(0, 255));
    this.sprite.node.color = c;
    this.vx = random(-10, 10);
    this.vy = random(-10, 10);
  }
  update(dt) {
    const dx = this.center.x - this.node.x;
    const dy = this.center.y - this.node.y;
    // 到圆心的直线距离
    let d = (dx ** 2 + dy ** 2) ** 0.5;
    if (d < 1) d = 1;
    // const f = Math.cos(d) * random(-10, 10);
    const f = Math.cos(d * 0.04) * random(-10, 10);
    const ax = (f * dx) / d;
    const ay = (f * dy) / d;
    this.vx = 0.5 * this.vx + ax;
    this.vy = 0.5 * this.vy + ay;
    this.node.x += this.vx;
    this.node.y += this.vy;
  }
}

 

父节点只是负责初始化和监听事件, 修改原点位置

const { ccclass, property } = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {
  @property(cc.Prefab)
  itemPrefab: cc.Prefab = null;
  @property(cc.Node)
  itemWrap: cc.Node = null;
  size = 5000;
  itemList = [];
  w = 960;
  h = 640;
  center = { x: 0, y: 0 };
  onLoad() {
    this.itemList = Array(this.size);
    const st = +new Date();
    for (let i = 0; i < this.size; i++) {
      const node = cc.instantiate(this.itemPrefab);
      node.getComponent("CircleItem").init(i, this.w, this.h, this.center);
      this.itemList[i] = node;
    }
    for (let i = 0; i < this.size; i++)
      this.itemWrap.addChild(this.itemList[i]);
    this.node.on(cc.Node.EventType.MOUSE_MOVE, (e) => {
      const location = e.getLocation();
      this.center.x = location.x - this.w / 2;
      this.center.y = location.y - this.h / 2;
      //   const p = this.node.convertToNodeSpace(location);
      //   console.log("e", e, p, location);
      //   for (let i = 0; i < this.size; i++) {
      //     this.itemList[i]
      //       .getComponent("CircleItem")
      //       .setCenter(location.x - this.w / 2, location.y - this.h / 2);
      //   }
    });
  }
  // update (dt) {}
}

 

colorbox 跟随鼠标滚动

colorbox 跟随鼠标滚动

大家好:

jquery 的 colorbox  是否能跟随鼠标滚动,这个弹出框是否也能一起跟随滚动呢。我没看到有这个属性呢, 谁知道。在线等!!

我们今天的关于Mac OS X 上的焦点跟随鼠标加上自动抬起的分享已经告一段落,感谢您的关注,如果您想了解更多关于android鼠标图片不跟随鼠标焦点移动,总是居中显示,如何实现???、banner 跟随鼠标呈现视差效果、cocos 粒子同心圆 跟随鼠标、colorbox 跟随鼠标滚动的相关信息,请在本站查询。

本文标签: