2013-12-23 80 views
-1

我想獲得我的CSS工作一些幫助。將一個Div分成兩個css部分?

現在我想要做的是在用戶開始滾動時在div上顯示陰影。

現在我有。

HTML

<div class="head shadow"></div> 

CSS

.head { 
    background: #edeff0; 
    position: fixed; 
    width: 70%; 
    height: 70px; 
    top: 0; 
    left: 85px; 
    right: 15px; 
    z-index: 100; 
} 
.shadow { 
    display:none; 
    -webkit-transition-duration: 0.2s; 
    -moz-transition-duration: 0.2s; 
    -o-transition-duration: 0.2s; 
    transition-duration: 0.2s; 
    -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    -webkit-transition-duration: 0.2s; 
    -moz-transition-duration: 0.2s; 
    -o-transition-duration: 0.2s; 
} 

的Javascript

 $(document).scroll(function() { 
    var y = $(this).scrollTop(); 
    if (y > 1) { 
     $('.shadow').fadeIn(); 
    } else { 
     $('.shadow').fadeOut(); 
    } 

}); 

現在,如果我刪除 display:none;一切都會顯示,如果我把它放回去,它會隱藏一切。

我怎樣才能得到它只隱藏陰影,並使JavaScript的工作。

Here is a working (well it's not working) version

感謝

ALED

+1

只需使用toggleClass(),或者如果你想使用單獨的功能,使用addClass()和removeClass() –

+0

我想做些什麼是使用CSS來隱藏陰影,以便腳本可以在滾動時再次鞋楦? – aled2305

+0

我在下面的答案概述了你需要做的事情。它根據發生的情況添加或刪除影子類。你需要擺脫顯示:無; –

回答

1

工作FIDDLE - http://jsfiddle.net/andyjh07/yY4U8/

HTML:

<div class="head"></div> 

的jQuery:

$(document).scroll(function() { 
    var y = $(this).scrollTop(); 
    if (y > 1) { 
     $('.head').addClass('shadow'); 
    } else { 
     $('.head').removeClass('shadow'); 
    } 
}); 

CSS:

.shadow { 
    -webkit-transition-duration: 0.2s; 
    -moz-transition-duration: 0.2s; 
    -o-transition-duration: 0.2s; 
    transition-duration: 0.2s; 
    -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    -webkit-transition-duration: 0.2s; 
    -moz-transition-duration: 0.2s; 
    -o-transition-duration: 0.2s; 
} 

上述解決方案增加了shadowclass與類head元素如果滾動是真實的,否則它會刪除它。因爲你使用display: none;這將完全隱藏整個元素,不只是造型該類

+0

http://jsfiddle.net/aled2305/pBYgs/12/我已經更新了代碼,但它仍然不起作用? – aled2305

+0

http://jsfiddle.net/andyjh07/yY4U8/ - 這裏是一個工作小提琴。一切正常,因爲它應該 –

+0

謝謝安迪,還有一件事,是否有任何方法讓陰影淡入淡出? – aled2305

0

這裏你有問題之前的原因是Working Fiddle

(請不要忘記,包括jQuery的)

HTML

<div class="head"></div> 

CSS

.head { 
    background: #edeff0; 
    position: fixed; 
    width: 70%; 
    height: 70px; 
    top: 0; 
    left: 85px; 
    right: 15px; 
    z-index: 100; 
} 
.shadow { 
    -webkit-transition-duration: 0.2s; 
    -moz-transition-duration: 0.2s; 
    -o-transition-duration: 0.2s; 
    transition-duration: 0.2s; 
    -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    -webkit-transition-duration: 0.2s; 
    -moz-transition-duration: 0.2s; 
    -o-transition-duration: 0.2s; 
} 

jQuery的

$(document).scroll(function() { 
    var y = $(this).scrollTop(); 
    if (y > 1) { 
     $('.head').addClass("shadow"); 
    } else { 
     $('.head').removeClass("shadow"); 
    } 

}); 
0
.shadow { 
    -webkit-transition-duration: 0.2s; 
    -moz-transition-duration: 0.2s; 
    -o-transition-duration: 0.2s; 
    transition-duration: 0.2s; 

    -webkit-transition-property: all 
    -moz-transition-property: all 
    -ms-transition-property: all 
    -o-transition-property: all 
    transition-property: all 

    -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0); 
    -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0); 
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0); 
} 

.shadow.scrolled { 
    -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 
} 

$(document).scroll(function() { 
    if ($(this).scrollTop() > 0) { 
    $('.shadow').addClass("scrolled"); 
    } else { 
    $('.shadow').removeClass("scrolled"); 
    } 
}); 
+0

順便說一句*不要*使用供應商前綴... 使用precompiler.sass和指南針爲例。 或更少 –

+0

在快速啓動的事件(如滾動)上使用toggleClass()時,請小心。 你想精確控制發生了什麼。 toggleClass()很好用,但可能會導致不一致。 –