2017-02-17 36 views
0

我有一个CSS说涂改psudo类与jQuery的

div.borderYtoX a:before, 
div.borderYtoX a:after { 
    position: absolute; 
    opacity: 0.5; 
    height: 100%; 
    width: 2px; 
    content: ''; 
    background: #FFF; 
    transition: all 0.3s; 
} 

在这里我要改变背景,以一些不同的颜色,当我向下滚动。它影响滚动的导航菜单。下面是jQuery代码,也是我尝试过的,但不起作用。有没有可能的方法来做到这一点?

$(document).ready(function(){ 
    var scroll_start = 0; 
    var startchange = $('#startchange'); 
    var offset = startchange.offset(); 
    $(document).scroll(function() { 
     scroll_start = $(this).scrollTop(); 
     if(scroll_start > offset.top) { 
      $('.header').css('background-color', 'rgb(255,255,255)'); 
      $('div.container a').css('color', '#063193'); 
      $('.borderYtoX a:before, .borderYtoX a:after').css('background', '#063193'); 
     } else { 
      $('.header').css('background-color', 'rgba(255,255,255,0.3)'); 
      $('div.container a').css('color', '#fff'); 
      $('div.borderYtoX a:before, div.borderYtoX a:after').css('background', '#fff'); 
     } 
    }); 
}); 
+0

创建一个代码片段,它将有助于理解问题并给出完美的解决方案 –

+0

不,您不能定位'pseudo'。你不能操作':after'或':before',因为它在技术上不是'DOM'的一部分,因此不能被任何'JavaScript'或'jQuery'访问。但是你可以用一个新的':after'或':before'指定一个新类。请参阅此[** SOAnswer **](http://stackoverflow.com/a/17789110/4763084) – vivekkupadhyay

+0

[访问css的可能的重复:后选择器与jQuery](http://stackoverflow.com/questions/17788990 /接入最CSS-后选择与 - jquery的) – vivekkupadhyay

回答

2

您不能使用JavaScript访问伪元素,因为它们实际上不存在于DOM中。如果你想操纵他们使用jQuery的覆盖类适用于元素,并添加一个CSS覆盖为新类

CSS

div.borderYtoX a.active:before, 
div.borderYtoX a.active:after { 

    background: #063193; 
} 

脚本

$(document).ready(function(){ 
    var scroll_start = 0; 
    var startchange = $('#startchange'); 
    var offset = startchange.offset(); 
    $(document).scroll(function() { 
     scroll_start = $(this).scrollTop(); 
     if(scroll_start > offset.top) { 
      $('.header').css('background-color', 'rgb(255,255,255)'); 
      $('div.container a').css('color', '#063193'); 
      $('.borderYtoX a, .borderYtoX a').toggleClass('active'); 
     } else { 
      $('.header').css('background-color', 'rgba(255,255,255,0.3)'); 
      $('div.container a').css('color', '#fff'); 
      $('div.borderYtoX a:before, div.borderYtoX a:after').css('background', '#fff'); 
     } 
    }); 
});