我为任何愚蠢的问题/编码道歉,我对jquery很新!
我正在尝试为具有翻转和活动状态的单页网站创建菜单。 HTML:
<ul id="menu">
<li><a class="rollover" href="#"><img class="folio" src="images/folio3.png" /></a></li>
<li><a class="rollover" href="#"><img class="services" src="images/services3.png" /></a></li>
<li><a class="rollover" href="#"><img class="about" src="images/about3.png" /></a></li>
<li><a class="rollover" href="#"><img class="contact" src="images/contact3.png" /></a></li>
</ul>
jquery的:
$(document).ready(function(){
$("a.rollover").fadeTo(1,0.5);
$("a.rollover").hover(
function() {$(this).fadeTo("fast",1);},
function() {$(this).fadeTo("fast",0.5);});
$("a.rollover").click(function(){
if($(".active").length) {
if($(this).hasClass("active")) {
$(this).removeClass("active");
$(this).fadeTo("fast",0.5);
} else {
$(".active").fadeTo("fast",0.5);
$(".active").removeClass("active");
$(this).addClass("active");
$(this).fadeTo("fast",1);
}
} else {
$(this).addClass("active");
$(this).fadeTo("fast",1);
}});
});
所以这里有两个问题:
即使活动类是 在Chrome的开发者中添加了 工具我可以看到不透明度 活动类是“1”,它不是 似乎在浏览器中工作,即。该 不透明度仍会出现在浏览器中 是“0.5”。
如果$(this)处于活动状态,即使在此之后 点击$(this)从而删除 活跃的类,不透明度仍然存在 “1”。如果我点击$(this)几个 时代,最终不透明 改回“0.5”。
我真的很感激帮助。我一直在努力争取这个......现在3天嘿嘿: - /
非常感谢...
答案 0 :(得分:2)
我认为这应该做你想做的事情
$(document).ready(function(){
$("a.rollover").fadeTo(1,0.5);
$("a.rollover").hover(function(){
$(this).fadeTo("fast",1);
},function(){
if(!$(this).hasClass('active'))
{
$(this).fadeTo("fast",0.5);
}
});
$("a.rollover").click(function(){
if($('.active').length > 0)
{
if($(this).hasClass('active'))
{
$(this).removeClass("active");
$(this).fadeTo("fast",0.5);
}
else
{
$(".active").fadeTo("fast",0.5);
$(".active").removeClass("active");
$(this).addClass("active");
$(this).fadeTo("fast",1);
}
}
else
{
$(this).addClass("active");
$(this).fadeTo("fast",1);
}
return false;
});
});
答案 1 :(得分:0)
试试这个,捏了一下
$(function(){
$("a.rollover").fadeTo(1,0.5);
$("a.rollover").hover(
function() {$(this).stop().fadeIn("fast");},
function() {$(this).stop().fadeTo("fast",0.5);}
).click(function(){
var ia = $(this).hasClass("active"); //Was it active before?
$(".active").fadeTo("fast",0.5).removeClass("active"); //Remove actives
$(this).toggleClass("active", !ia); //Switch active to reverse of previous
$(".active").stop().fadeIn("fast");//Fade in anything active (this if it is)
}});
});
答案 2 :(得分:0)
试试这个,我认为它应该有效:
$(function() {
$("a.rollover img").fadeTo(1, 0.5);
$(".active").fadeTo(0.5, 1);
$("a.rollover img").hover(
function() {
if ( ! $(this).hasClass("active")) {
$(this).stop().fadeTo("fast", 1);
}
},
function() {
if ( ! $(this).hasClass("active")) {
$(this).stop().fadeTo("fast", 0.5);
}
}
).click(function() {
var ia = $(this).hasClass("active"); //Was it active before?
$(".active").fadeTo("fast", 0.5).removeClass("active"); //Remove actives
$(this).toggleClass("active", !ia); //Switch active to reverse of previous
$(".active").stop().fadeTo("fast", 1); //Fade in anything active (this if it is)
});
});