当前位置: 首页 > 面试题库 >

在滚动角度样式时更改CSS

丁昌翰
2023-03-14
问题内容

我想在用户滚动角度方式时更改CSS元素。

这是使用JQuery方式的代码

$(window).scroll(function() {
    if ($(window).scrollTop() > 20 && $(window).scrollTop() < 600) {
        $('header, h1, a, div, span, ul, li, nav').css('height','-=10px');
    } else if ($(window).scrollTop() < 80) {
        $('header, h1, a, div, span, ul, li, nav').css('height','100px');
    }

我尝试使用以下代码执行Angular方式,但是$ scope.scroll似乎无法正确获取滚动数据。

forestboneApp.controller('MainCtrl', function($scope, $document) {
    $scope.scroll = $($document).scroll();
    $scope.$watch('scroll', function (newValue) {
        console.log(newValue);
    });
});

Muchos gracias好友!


问题答案:

请记住,在Angular中,DOM访问应从指令内部进行。这是一个简单的指令,可根据scrollTop窗口的设置变量。

app.directive('scrollPosition', function($window) {
  return {
    scope: {
      scroll: '=scrollPosition'
    },
    link: function(scope, element, attrs) {
      var windowEl = angular.element($window);
      var handler = function() {
        scope.scroll = windowEl.scrollTop();
      }
      windowEl.on('scroll', scope.$apply.bind(scope, handler));
      handler();
    }
  };
});
对我来说,您到底要寻找什么样的最终结果尚不清楚,所以这是一个简单的演示应用程序,用于 1px将窗口向下滚动超过50个像素来设置元素的高度: http
//jsfiddle.net/BinaryMuse/ Z4VqP /


 类似资料:
  • 我有一个RecycerView与简单的项目-一个项目有一个图像,标题和按钮。当用户单击按钮时,它需要更改其布局->,指示按钮被单击(类似于复选框功能)。

  • 我正在寻找一种通过改变散列来改变部分样式的方法。让我以一个例子来解释: > 当前URL为: 然后单击复选框,URL将更改为: 我想更改类的。 我尝试了以下代码,但它不起作用: 实际上,每次哈希更改时,控制台中都不会出现任何内容。

  • 在我的Angular 2应用程序中,当我向下滚动一个页面并点击页面底部的链接时,它会改变路径并带我进入下一个页面,但它不会滚动到页面顶部。因此,如果第一页很长,而第二页的内容很少,就会给人一种第二页缺少内容的印象。因为只有当用户滚动到页面顶部时,内容才可见。 我可以在组件的ngInit中滚动窗口到页面顶部但是,有没有更好的解决方案可以自动处理我的应用程序中的所有路线?

  • 我使用这段代码在滚动到部分时突出显示导航栏。当我滚动到某个分区时,是否可以立即更改地址栏中的URL?有人能帮我吗? 提前感谢

  • 我从HTTP调用中获取了大量的HTML代码。我将HTML块放入一个变量中,并用[innerHTML]将其插入到我的页面中,但我不能为插入的HTML块设置样式。有没有人建议我怎样才能做到这一点? 我想要样式化的HTML是变量“calendar”中包含的块。

  • 如何在拖动时更改可拖动元素的文本,我有来自cdk/拖放库的代码片段。它为在拖动时捕捉事件提供参数。我可以通过本机元素进行更改,但它会更改所有样式,而且我还需要在dragover或其他操作上设置另一个事件。如果要在拖动元素上放置随机文本,有哪些选项? 在Html 在TS