Beste mensen,
Ik ben al een paar uur bezig maar ik krijg het maar niet voor elkaar.
Het gaat om een topmenu. Wanneer je een pagina bezoekt wordt de active link gehighlight met een afbeelding. Wanneer je een mouseover wordt deze met hetzelfde plaatje gehighlight. Dit werkt allebei goed.
Echter wanneer je een mouseover doet in het menu moet de active link niet meer worden gehighlight. Net als bijvoorbeeld het rootmenu van www.tweakers.net.
Ik heb nu de volgende css:
En in PHP:PHP Code:
#top_menu {
padding: 4px 8px 0px 0px;
text-align: right;
clear: right;
}
#top_menu ul li.first-level, #top_menu ul li.first-level.cm-active, #top_menu ul li.first-level:hover {
padding: 0 2px 0 0;
margin: 0 0 0 3px;
text-align: left;
border: 0px none;
height: 27px;
}
#top_menu ul li.first-level.cm-active, #top_menu ul li.first-level:hover {
background: #caf0f9 url('images/top_tab_right_active.gif') no-repeat right top;
margin: -4px 0 -1px 3px;
height: 31px;
}
#top_menu ul li.first-level span {
padding: 6px 15px 4px 19px;
}
#top_menu ul li.first-level.cm-active span, #top_menu ul li.first-level:hover span {
background: url('images/top_tab_left_active.gif') no-repeat left top;
padding: 9px 15px 6px 19px;
}
#top_menu ul ul {
margin-top: 0px;
padding-top: 3px;
padding-bottom: 4px;
}
Weet iemand hoe je dit moet oplossen?PHP Code:
{if $top_menu}
<div id="top_menu">
{strip}
<ul class="top-menu dropdown">
{foreach from=$top_menu item="m"}
<li class="first-level {if $m.selected == true}cm-active{/if}">
<span><a{if $m.href} href="{$m.href}"{/if}{if $m.new_window} target="_blank"{/if}>{$m.item}</a></span>
{if $m.subitems}
{include file="top_menu.tpl" items=$m.subitems top_menu="" dir=$m.param_4}
{/if}
</li>
{/foreach}
</ul>
{/strip}
</div>
- Hoe active link laten verdwijnen by mouseover?
-
09-05-2010, 15:21 #1
- Berichten
- 25
- Lid sinds
- 16 Jaar
Hoe active link laten verdwijnen by mouseover?
-
In de schijnwerper
Hoe Fit Worden (DR28) | Tips voor fitness, krachttraining & meer (275 artikelen)Website te koop[SNELLE LEVERING] Laat je website / webshop snel en professioneel bouwen!Freelance / WerkPopi.nl | Linkbuilding Platform| 14.000+ MogelijkhedenLinkpartnersZeer complete WordPress VPS pakkettenHosting -
09-05-2010, 15:50 #2
- Berichten
- 330
- Lid sinds
- 18 Jaar
Dit kan je niet doen met css (naar mijn weten). Dit dien je te doen door middel van Javascript (bijvoorbeeld met jQuery).
-
09-05-2010, 15:53 #3
- Berichten
- 756
- Lid sinds
- 16 Jaar
Dit kan (volgens mij) alleen met javascript/jquery.
Wat je wil is bij een hover de class cm-active weghalen, dus bijv:
$("#top_menu ul li").hover(
function(){
$(this).removeClass("cm-active");
}
);Laatst aangepast door Z Tas : 09-05-2010 om 15:58
-
09-05-2010, 16:07 #4
- Berichten
- 25
- Lid sinds
- 16 Jaar
Bedankt hiervoor! Alleen hoe zet ik dat fatsoenlijk weg in de php code zoals hierboven is weergegeven?
-
09-05-2010, 16:15 #5
- Berichten
- 756
- Lid sinds
- 16 Jaar
phpcode? ik zie boven alleen smarty code, waarschijnlijk uit een .tpl bestand.
Maargoed je moet onderstaande plaatsen in de <head>
PHP Code:<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#top_menu ul li").hover(
function(){
$(this).removeClass("cm-active");
}
);
});
</script>
-
09-05-2010, 16:35 #6
- Berichten
- 25
- Lid sinds
- 16 Jaar
phpcode? ik zie boven alleen smarty code, waarschijnlijk uit een .tpl bestand.
Maargoed je moet onderstaande plaatsen in de <head>
PHP Code:<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#top_menu ul li").hover(
function(){
$(this).removeClass("cm-active");
}
);
});
</script>
Met als gevolg een fatal error in de smary code;
PHP Code:Fatal error: Smarty error: [in top_quick_links.tpl line 10]: syntax error: unrecognized tag: $("#top_menu ul li").hover( function(){ $(this).removeClass("cm-active"); (Smarty_Compiler.class.php, line 445
-
09-05-2010, 16:55 #7
- Berichten
- 756
- Lid sinds
- 16 Jaar
Probeer eens met literal tags eromheen dus:
{literal}JavaScript hier{/literal}
-
09-05-2010, 17:18 #8
- Berichten
- 25
- Lid sinds
- 16 Jaar
Super bedankt, ik ben al een stuk verder. Alleen nog een klein dingetje, het werkt alleen nadat je een mouseover doet op de active link. Eerder werkt het nog niet. Moet ik dan het javascriptje verplaatsen of aanpassen?
-
09-05-2010, 18:46 #9
- Berichten
- 756
- Lid sinds
- 16 Jaar
Inmiddels als iets verder?
Het script staat in ieder geval op de juiste plaats dus daar ligt het niet aan.
-
09-05-2010, 19:00 #10
- Berichten
- 330
- Lid sinds
- 18 Jaar
PHP Code:{literal}
<script type="text/javascript">
$(document).ready(function(){
$("#top_menu ul li").hover(function(){
$(this).parent().find('#cm-activeid').removeClass("cm-active");
}, function() {
$(this).parent().find('#cm-activeid').addClass("cm-active");
});
});
</script>
{/literal}
De class gebruik je in de css om de actieve button te stijlen. Dan zal het moeten werken.
-
09-05-2010, 22:04 #11
- Berichten
- 25
- Lid sinds
- 16 Jaar
PHP Code:{literal}
<script type="text/javascript">
$(document).ready(function(){
$("#top_menu ul li").hover(function(){
$(this).parent().find('#cm-activeid').removeClass("cm-active");
}, function() {
$(this).parent().find('#cm-activeid').addClass("cm-active");
});
});
</script>
{/literal}
De class gebruik je in de css om de actieve button te stijlen. Dan zal het moeten werken.
Ik heb dit in een aantal varianten geprobeerd maar ik krijg het niet werkend. Wanner ik dit script vervang voor in de plaats van het script van Tas dan werkt het weer zoals in de eerste post. Of moet ik een apparte css voor #cm-activeid maken?
-
09-05-2010, 23:01 #12
- Berichten
- 330
- Lid sinds
- 18 Jaar
Fout gelezen. Je moet in dit geval de actieve li de id en class meegeven die ik eerder al aangaf. En je wil twee classes toevoegen aan het actieve lijstelement. Dan gaat het sowieso niet werken. Zit nu op mijn mobiel, dus kan je niet zo snel helpen nu.
Laatst aangepast door Arjen Rademaker : 09-05-2010 om 23:06
-
10-05-2010, 07:34 #13
- Berichten
- 25
- Lid sinds
- 16 Jaar
Bedankt voor je bericht. Ik heb de idd en class aan de li toegevoegd alleen geen resultaat.
Tags voor dit bericht
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic