如何在将特定 css 属性应用于 dom 时自动应用类

Posted

技术标签:

【中文标题】如何在将特定 css 属性应用于 dom 时自动应用类【英文标题】:How to auto apply a class when a particular css property is applied to the dom 【发布时间】:2017-05-10 19:28:16 【问题描述】:

我需要在我的应用程序中设置自定义滚动条。我已经在我定义的类中使用 -webkit-scrollbar 实现了这一点 - 'scroll-bar'。现在我必须将这个类应用到我所有需要 overflow: auto 的 div 中。相反,在 Angular 或 jQuery 或 scss 中是否有任何方法可以让我的doms 可以在设置溢出属性时自动使用“滚动条”类?

我在这里提供了一个演示,以便您更好地理解。 请帮忙!

.scrollbar-container

	margin: 30px;
    float:left;
	height: 300px;
	width: 65px;
	background: #F5F5F5;
	overflow-y: scroll;
    border:1px solid tomato;



.force-overflow

	height: 550px;



.scroll-bar::-webkit-scrollbar-track

	//box-shadow: inset 0 0 6px rgba(0,0,0,0.9);
    border:0.5px solid #bababa;
	border-radius: 5px;
	background-color: #F1F2F7;


.scroll-bar::-webkit-scrollbar

	width: 8px;
    height:8px;
	background-color: #F5F5F5;


.scroll-bar::-webkit-scrollbar-thumb

	border-radius: 5px;
	background-color: green;
	
<!DOCTYPE html>
    <html ng-app="myApp" >
    <head>
    <script src="https://code.angularjs.org/1.4.9/angular.js"></script>
    </head>
    <body>
      <div class="scrollbar-container scroll-bar" >
        <div class="force-overflow"></div>
      </div>
      <div class="scrollbar-container scroll-bar" >
        <div class="force-overflow"></div>
      </div>
      <div class="scrollbar-container scroll-bar" >
        <div class="force-overflow"></div>
      </div>
    </body>
</html>

【问题讨论】:

无论您在哪里需要自定义滚动条,都可以在该元素中添加“.scroll-bar”类 我认为您必须将滚动设置为所有具有自动溢出功能的 div。所以你可以检查一下它可能对你有帮助。 ***.com/questions/2059743/… @Sharmila 和@Vijay,感谢您的努力:) 我正在按照您所说的做。但是在一个由更多开发人员开发的大型应用程序中,如果我们将此滚动作为一个组件通用,那就太好了。所以无论何时使用溢出:自动通用类:滚动条都会自动配置它。我需要一个解决方案.. 【参考方案1】:

$(document).ready(function()


  $('.scrollbar-container').each(function()
  

  if ($(this).css('overflow') == 'auto')
       console.log('1');
    
  
  );
);
.scrollbar-container

	margin: 30px;
    float:left;
	height: 300px;
	width: 65px;
	background: #F5F5F5;
	overflow-y: scroll;
    border:1px solid tomato;



.force-overflow

	height: 550px;



.scroll-bar::-webkit-scrollbar-track

	//box-shadow: inset 0 0 6px rgba(0,0,0,0.9);
    border:0.5px solid #bababa;
	border-radius: 5px;
	background-color: #F1F2F7;


.scroll-bar::-webkit-scrollbar

	width: 8px;
    height:8px;
	background-color: #F5F5F5;


.scroll-bar::-webkit-scrollbar-thumb

	border-radius: 5px;
	background-color: green;
	
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!DOCTYPE html>
    <html ng-app="myApp" >
    <head>

    </head>
    <body>
      <div class="scrollbar-container scroll-bar">
        
        <div class="force-overflow">
     </div>
      </div>
      <div class="scrollbar-container scroll-bar" >
        <div class="force-overflow"></div>
      </div>
      <div class="scrollbar-container scroll-bar" >
        <div class="force-overflow"></div>
      </div>
    </body>
</html>

【讨论】:

我很感激.. 谢谢!

以上是关于如何在将特定 css 属性应用于 dom 时自动应用类的主要内容,如果未能解决你的问题,请参考以下文章

仅在针对特定路线时应用 CSS

在将约束应用于 UIScrollView 时需要帮助

javascript 找到应用于特定元素的所有CSS规则;并检查样式表中是否定义了特定元素的CSS属性 - 而不是

将 CSS 重复应用于特定单词

如何在 Kivy 应用程序启动时满足特定条件时自动弹出警报

有没有办法使用 Puppeteer 定位特定元素并在将 html 转换为 pdf 时保留 CSS?