javascript - Diffrent menu color of each section/ -
how can change menu color when scrollbar has moved new div id or menu item clicked , scrolled down new id?
i working on 1 page website, , using scroll section id on webpage. , want menu change color every section id.
how 1 go doing jquery? here example
here html code:
<body> <div id="cssmenu-holder"><div id='cssmenu' class="align-center"> <ul> <li><a href='#'>hem</a></li> <li><a href='#'>om spelet</a></li> <li><a href='#'>regler</a></li> <li><a href='#'>köp spelet</a></li> <li><a href='#'>kontakta oss</a></li> </ul> </div> </div> <!-- banner --> <div id="banner" class="col-lg-12"> banner here </div> <section id="about"> game </section> <!-- rules --> <section id="rules" class="style-bg"> find rules here </section> <!-- om --> <section id="buy" class=""> buy </section> <!-- contact --> <section id="contact" class="style-bg"> contact me </section> <!-- footer --> <footer id="footer"> info </footer> </body> and here css code menu:
@import url(http://fonts.googleapis.com/css?family=open+sans); #cssmenu-holder { z-index: 9999; position: fixed; left: 0; top: 0; width: 100%; } #cssmenu, #cssmenu ul, #cssmenu ul li, #cssmenu ul li a, #cssmenu #menu-button { margin: 0; padding: 0; border: 0; list-style: none; line-height: 1; display: block; position: relative; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } #cssmenu.align-center > ul { font-size: 0; text-align: center; } #cssmenu:after, #cssmenu > ul:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; } #cssmenu #menu-button { display: none; } #cssmenu { width: auto; font-family: 'open sans', sans-serif; line-height: 1; background: #2e8be6; } #menu-line { position: absolute; top: 0; left: 0; height: 3px; background: #fff; -webkit-transition: 0.25s ease-out; -moz-transition: 0.25s ease-out; -ms-transition: 0.25s ease-out; -o-transition: 0.25s ease-out; transition: 0.25s ease-out; } #cssmenu > ul > li { float: left; } #cssmenu.align-center > ul { font-size: 0; text-align: center; } #cssmenu.align-center > ul > li { display: inline-block; float: none; } #cssmenu.align-center ul ul { text-align: left; } #cssmenu.align-right > ul > li { float: right; } #cssmenu.align-right ul ul { text-align: right; } #cssmenu > ul > li > { padding: 20px; font-size: 12px; text-decoration: none; text-transform: uppercase; color: #fff; -webkit-transition: color .2s ease; -moz-transition: color .2s ease; -ms-transition: color .2s ease; -o-transition: color .2s ease; transition: color .2s ease; } #cssmenu > ul > li:hover > a, #cssmenu > ul > li.active > { color: #fff; } #cssmenu > ul > li.has-sub > { padding-right: 25px; } #cssmenu > ul > li.has-sub > a::after { position: absolute; top: 21px; right: 10px; width: 4px; height: 4px; border-bottom: 1px solid #000000; border-right: 1px solid #000000; content: ""; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg); -webkit-transition: border-color 0.2s ease; -moz-transition: border-color 0.2s ease; -ms-transition: border-color 0.2s ease; -o-transition: border-color 0.2s ease; transition: border-color 0.2s ease; } #cssmenu > ul > li.has-sub:hover > a::after { border-color: #009ae1; } #cssmenu ul ul { position: absolute; left: -9999px; } #cssmenu li:hover > ul { left: auto; } #cssmenu.align-right li:hover > ul { right: 0; } #cssmenu ul ul ul { margin-left: 100%; top: 0; } #cssmenu.align-right ul ul ul { margin-left: 0; margin-right: 100%; } #cssmenu ul ul li { height: 0; -webkit-transition: height .2s ease; -moz-transition: height .2s ease; -ms-transition: height .2s ease; -o-transition: height .2s ease; transition: height .2s ease; } #cssmenu ul li:hover > ul > li { height: 32px; } #cssmenu ul ul li { padding: 10px 20px; width: 160px; font-size: 12px; background: #fff; text-decoration: none; color: #dddddd; -webkit-transition: color .2s ease; -moz-transition: color .2s ease; -ms-transition: color .2s ease; -o-transition: color .2s ease; transition: color .2s ease; } #cssmenu ul ul li:hover > a, #cssmenu ul ul li a:hover { color: #ffffff; } #cssmenu ul ul li.has-sub > a::after { position: absolute; top: 13px; right: 10px; width: 4px; height: 4px; border-bottom: 1px solid #dddddd; border-right: 1px solid #dddddd; content: ""; -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -ms-transform: rotate(-45deg); -o-transform: rotate(-45deg); transform: rotate(-45deg); -webkit-transition: border-color 0.2s ease; -moz-transition: border-color 0.2s ease; -ms-transition: border-color 0.2s ease; -o-transition: border-color 0.2s ease; transition: border-color 0.2s ease; } #cssmenu.align-right ul ul li.has-sub > a::after { right: auto; left: 10px; border-bottom: 0; border-right: 0; border-top: 1px solid #dddddd; border-left: 1px solid #dddddd; } #cssmenu ul ul li.has-sub:hover > a::after { border-color: #ffffff; } @media , (max-width: 768px), screen , (-webkit-min-device-pixel-ratio: 2) , (max-width: 1024px), screen , (min--moz-device-pixel-ratio: 2) , (max-width: 1024px), screen , (-o-min-device-pixel-ratio: 2/1) , (max-width: 1024px), screen , (min-device-pixel-ratio: 2) , (max-width: 1024px), screen , (min-resolution: 192dpi) , (max-width: 1024px), screen , (min-resolution: 2dppx) , (max-width: 1024px) { #cssmenu { width: 100%; } #cssmenu ul { width: 100%; display: none; } #cssmenu.align-center > ul, #cssmenu.align-right ul ul { text-align: left; } #cssmenu ul li, #cssmenu ul ul li, #cssmenu ul li:hover > ul > li { width: 100%; height: auto; border-top: 1px solid rgba(120, 120, 120, 0.15); } #cssmenu ul li a, #cssmenu ul ul li { width: 100%; } #cssmenu > ul > li, #cssmenu.align-center > ul > li, #cssmenu.align-right > ul > li { float: none; display: block; } #cssmenu ul ul li { padding: 20px 20px 20px 30px; font-size: 12px; color: #000000; background: none; } #cssmenu ul ul li:hover > a, #cssmenu ul ul li a:hover { color: #000000; } #cssmenu ul ul ul li { padding-left: 40px; } #cssmenu ul ul, #cssmenu ul ul ul { position: relative; left: 0; right: auto; width: 100%; margin: 0; } #cssmenu > ul > li.has-sub > a::after, #cssmenu ul ul li.has-sub > a::after { display: none; } #menu-line { display: none; } #cssmenu #menu-button { display: block; padding: 20px; color: #000000; cursor: pointer; font-size: 12px; text-transform: uppercase; } #cssmenu #menu-button::after { content: ''; position: absolute; top: 20px; right: 20px; display: block; width: 15px; height: 2px; background: #000000; } #cssmenu #menu-button::before { content: ''; position: absolute; top: 25px; right: 20px; display: block; width: 15px; height: 3px; border-top: 2px solid #000000; border-bottom: 2px solid #000000; } #cssmenu .submenu-button { position: absolute; z-index: 10; right: 0; top: 0; display: block; border-left: 1px solid rgba(120, 120, 120, 0.15); height: 52px; width: 52px; cursor: pointer; } #cssmenu .submenu-button::after { content: ''; position: absolute; top: 21px; left: 26px; display: block; width: 1px; height: 11px; background: #000000; z-index: 99; } #cssmenu .submenu-button::before { content: ''; position: absolute; left: 21px; top: 26px; display: block; width: 11px; height: 1px; background: #000000; z-index: 99; } #cssmenu .submenu-button.submenu-opened:after { display: none; } }
you can use iselementvisible function check if element in viewport.
function iselementvisible(elementtobechecked) { var topview = $(window).scrolltop(); var botview = topview + $(window).height(); var topelement = $(elementtobechecked).offset().top; var botelement = topelement + $(elementtobechecked).height(); return ((botelement <= botview) && (topelement >= topview)); } you should check when window scrolled.
the complete code this:
function iselementvisible(elementtobechecked) { var topview = $(window).scrolltop(); var botview = topview + $(window).height(); var topelement = $(elementtobechecked).offset().top; var botelement = topelement + $(elementtobechecked).height(); return ((botelement <= botview) && (topelement >= topview)); } $(window).scroll(function () { var rules = iselementvisible("#rules"); var buy = iselementvisible("#buy"); var contact = iselementvisible("#contact"); if (rules) $("#cssmenu-holder").css("background", "red"); if (buy) $("#cssmenu-holder").css("background", "blue"); if (contact) $("#cssmenu-holder").css("background", "green"); });
Comments
Post a Comment