如何在开始滚动时更改光标 css 属性,并在停止滚动时再次更改光标属性

Posted

技术标签:

【中文标题】如何在开始滚动时更改光标 css 属性,并在停止滚动时再次更改光标属性【英文标题】:How to change cursor css property when start to scroll and again change cursor property when stop to scroll 【发布时间】:2021-10-11 21:25:18 【问题描述】:

我尝试在角度函数中更改光标属性。 我的问题是,当我现在开始滚动网页时,光标将更改指针,而当我现在停止滚动时,光标将更改为默认值。 我尝试 window.pageYOffset 属性。但它的输出是光标将变为指针,但当我再次停止滚动时,光标将变为指针。

帮助解决这个问题。

【问题讨论】:

【参考方案1】:

Demo您可以为此使用主机监听器

  class="casa";
  private timeout: number;

  @HostListener('window:scroll', ['$event']) // for window scroll events
  onScroll(event) 
    this.class="hand";
    clearTimeout(this.timeout);
    this.timeout = setTimeout(() => 
      this.class = "casa";
    , 300);
  

你可以使用自定义类 css 属性

.hand
  cursor:pointer;

.casa
  cursor:default ;

并将这个事件交给 html

<div class="class"(scroll)="onScroll($event)" </div>

【讨论】:

【参考方案2】:

你可以试试这样的:

var timer = null;
window.addEventListener('scroll', function() 
document.body.style.cursor = 'all-scroll';
if(timer !== null) 
    clearTimeout(timer);        

timer = setTimeout(function() 
      document.body.style.cursor = 'default';
, 150);
, false);
检测滚动事件然后更改全局光标。 设置超时,以便在用户停止滚动时将其恢复为正常状态。

【讨论】:

以上是关于如何在开始滚动时更改光标 css 属性,并在停止滚动时再次更改光标属性的主要内容,如果未能解决你的问题,请参考以下文章

如何动态更改 CSS 光标 vuejs

使用jQuery实现图片循环滚动效果,当把光标移动图上,停止滚动;当把光标从图上移出后,图片继续滚动

C# winform中richTextBox中自动滚至底部

使用更改的 CSS 光标属性更新鼠标光标而不移动鼠标

如何加速flipclock并在某一点停止?

当光标在右列上方时如何滚动左列?