第一次從頭開始編寫JavaScript腳本。這在Firefox中完美運行,但在Chrome或Safari中查看時,右側邊欄根本不會改變不透明度。這被設計成當鼠標懸停在邊欄div上時,它會改變該div內箭頭img的不透明度。左邊欄被設置爲相同,但改變了div和img的不透明度。Javascript在Firefox中工作,但不支持IE,Chrome或Safari
我設計的這種方式爲客戶想看看這兩個看起來像未來的哪一個決定維持之前。一旦做出這個決定,它將只是一個或另一個,所以我需要讓右邊欄固定起來!
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Giterman Designs</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
function changeOpacity(elm, value) {
elm.style.opacity = (value/100);
elm.style.MozOpacity = (value/100);
elm.style.KhtmlOpacity = (value/100);
elm.style.filter = "alpha(opacity=" + (value) + ")";
elm.style.MsFilter = " 'progid:DXImageTransform.Microsoft.Alpha(opacity=" + (value) + ")' ";}
</script>
</head>
<body>
<!-- Left Side: Hover over Div, Div+Image shifts opacity -->
<div id="leftNav" class="sidebar" onMouseOver="changeOpacity(this, 70)" onMouseOut="changeOpacity(this, 20)">
<img src="image/leftNav.png" id="leftButton" class="arrow" alt=""></div>
<!-- Right Side: Hover over Div, Image shifts opacity -->
<div id="rightNav" class="sidebar2" onMouseOver="changeOpacity(rightButton, 70)" onMouseOut="changeOpacity(rightButton, 20)">
<img src="image/rightNav.png" id="rightButton" class="arrow" alt=""></div>
</body>
</html>
和CSS
body{
background: url("image/bg.jpg") no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;}
div#leftNav{
position:absolute; left:0;}
div#rightNav{
position:absolute; right:0;}
/* Left Side-bar */
.sidebar{
background:#000000; width: 55px; height: 100%; top:0; opacity:0.20;}
/* Right Side-bar */
.sidebar2{
background: url("image/bar.png") repeat-y; width: 55px; height: 100%; top:0;}
/* Needed to seperate arrow opacity for Right Side-bar attempt */
#rightButton{
opacity: 0.20;}
img.arrow{
position: absolute; top: 50%; left: 50%; margin: 0 0 0 -35%;}
只是評論:爲什麼不你不使用CSS':hover'僞類嗎?你可以使用'.sidebar:hover img.arrow {opacity:0.5}'。 – VKen
如果不是因爲需要父母懸停時修改的孩子的不透明度,我會使用懸停。我沒有/不知道該怎麼做。 –
如果您不需要通過將鼠標懸停在某個div上並從另一個位置更改某個元素的CSS來執行某些操作,那麼':hover'就完全可以做到。以下是您的代碼http://jsfiddle.net/nyt5b/的示例。您可以查看CSS部分以獲得更好的想法。將鼠標懸停在按鈕所在的左側和右側,子元素'#rightButton'和'#leftButton'將更改不透明度。 出於性能和維護考慮:更少的代碼,更少的工作,更少的錯誤。 – VKen