【发布时间】:2014-05-27 18:04:19
【问题描述】:
我的网站中有一个特定区域具有可切换的背景,但它似乎有点小故障。我的代码在淡入淡出其他对象时有效,但在这种情况下它不适用于我的图像。
我想要什么:每当用户点击我的按钮时,功能就会被激活。如果“按钮”文本是“应用程序”,我希望背景淡出,如果它是“游戏”,则淡入。同时,我希望文本的颜色类也从 fontcolor2 更改为 @987654323 @ 反之亦然。
问题;当我运行代码时,第一次点击就可以工作。之后,背景会像往常一样淡出,文本也会发生变化。但是当我点击更改按钮时,文本的颜色会发生变化,而我的图像不会重新消失。
出现故障的图像称为gamesBG,时间为bgFadeDuration。
这是我的代码;
$('#togglega').click(function(){
var bgFadeDuration = 300;
if ($('#togglega:contains(Apps)')) {
$('#nothingyet').css('display', 'none');
jQuery('#gamesBG').fadeOut(bgFadeDuration);
$("#togglega").toggleClass('fontcolor2 fontcolor1');
$("#sqtitle").toggleClass('fontcolor2 fontcolor1');
$("#sl1ndp").toggleClass('fontcolor2 fontcolor1');
$("#swtitle").toggleClass('fontcolor2 fontcolor1');
$("#squl").toggleClass('fontcolor2 fontcolor1');
} else if ($('#togglega:contains(Games)')){
$('#nothingyet').css('display', 'block');
jQuery('#gamesBG').fadeIn(bgFadeDuration);
$("#togglega").toggleClass('fontcolor1 fontcolor2');
$("#sqtitle").toggleClass('fontcolor1 fontcolor2');
$("#sl1ndp").toggleClass('fontcolor1 fontcolor2');
$("#swtitle").toggleClass('fontcolor1 fontcolor2');
$("#squl").toggleClass('fontcolor1 fontcolor2');
jQuery('#bttimg1').css('opacity', '0');
jQuery('#bttimg2').css('opacity', '0.7');
jQuery('.gdb').css('color', '#212121');
} else {
}
});
问题出在哪里,为什么我的代码不起作用?
更新
我使用 Javascript 函数将文本从 Apps 更改为 Games。函数如下;
Javascript
function togglegaclick(){
this.GamesChange = function(){
togglebutton.innerHTML = 'Games';
document.getElementById('towlabel').style.left = "60px";
categorylabel.innerHTML = 'Apps';
categorylabel.style.top = "17px";
categorylabel.style.left = "100px";
}
this.AppsChange = function(){
togglebutton.innerHTML = 'Apps';
document.getElementById('towlabel').style.left = "45px";
categorylabel.innerHTML = 'Games';
categorylabel.style.top = "20px";
categorylabel.style.left = "80px";
}
this.TitleFadeOut = function(){
fadeEffect.init('toqlabel', 1, 0);
fadeEffect.init('sqtitle', 1, 0);
}
this.TitleFadeIn = function(){
fadeEffect.init('toqlabel', 1, 100);
fadeEffect.init('sqtitle', 1, 100);
}
var togglebutton = document.getElementById('toqlabel');
var categorylabel = document.getElementById('sqtitle');
var gamesbox = document.getElementById('gamesbox');
if (togglebutton.innerHTML == 'Apps'){
GamesChange();
}else{
AppsChange();
}
}
【问题讨论】:
-
我仍在处理您的问题,并且可能已经重现了该问题。我对您的“按钮”感到困惑 - 文本如何从应用程序变为游戏?还是有两个按钮?
-
@TimSPQR 我正在使用 Javascript 函数将按钮和显示的文本上的文本从“应用程序”更改为“游戏”。我会在我的问题上发布我的 Javascript 函数供您查看。
-
好的,全部在纯 JS 中......仍在努力......小错误 - 将 toqlabel 更改为 towlabel。可能不是原因...这是我正在处理的小提琴jsfiddle.net/pBE2S
-
我查看了所有内容,只注意到背景图像与前景图像相比很难淡化。此外,我将警报作为每个函数中的第一个命令,并且仅触发了 Gameschange 和 Appschange 函数。所以我认为有必要进行更多的调试 - 也许只需将代码缩减到最基本的必要性并从那里构建。
标签: jquery css image button fade