javascript:淡出但可单击
我正在构建一个JQM应用程序,我有一些JS问题,我确信这些问题很容易解决,但我对JS了解不多 1) 我把div放在一个图像的顶部,该图像链接到多个图像。因此,当应用程序加载div时,div是可见的,然后逐渐消失。问题是我希望它们仍然可以点击,并且在它们不可见时链接到其他图像 代码 简单,但我只想让他们不可见,并保持链接 2) 我的第二个问题是,我有一个声音文件可以在加载时播放,还有两个图像可以打开和关闭声音文件。我所做的代码只会更改主页上的图像,不会在任何其他页面上工作(打开和关闭声音可以工作,但图像不会更改) 代码javascript:淡出但可单击,javascript,jquery-mobile,Javascript,Jquery Mobile,我正在构建一个JQM应用程序,我有一些JS问题,我确信这些问题很容易解决,但我对JS了解不多 1) 我把div放在一个图像的顶部,该图像链接到多个图像。因此,当应用程序加载div时,div是可见的,然后逐渐消失。问题是我希望它们仍然可以点击,并且在它们不可见时链接到其他图像 代码 简单,但我只想让他们不可见,并保持链接 2) 我的第二个问题是,我有一个声音文件可以在加载时播放,还有两个图像可以打开和关闭声音文件。我所做的代码只会更改主页上的图像,不会在任何其他页面上工作(打开和关闭声音可以工作,
从jQuery手册: .fadeOut()方法为匹配元素的不透明度设置动画。不透明度达到0后,“显示样式”属性将设置为“无”,因此该元素不再影响页面的布局 如果在
fadeOut()
完成后,将display
属性设置回inline
或block
,元素将保持可单击状态。可以使用fadeOut()
的complete
参数执行此操作。像这样的方法应该会奏效:
$(".link").fadeOut('slow', function(){
$(".link").css({"display":"inline"});
});
当.fadeOut为complete时,元素
显示为none且不可单击。您应该更改元素显示属性,并通过可见性
属性将其隐藏。我会这样做:
$(".link").fadeOut('slow', function(){
//animation complete callback
$(this).show().css('visibility', 'hidden');
});
你能给我们一些建议吗?这个函数可能比淡出更好:$('.link').animate({opacity:0},2000,callback)
这样,.link
仍然存在,只是不可见。此外,如果您使用jQuery,您的文档.getElementBy…
内容可能应该替换为$(“#sound”).attr('src')
,类似地,不透明度应该已经为0,因此无需使用可见性再次隐藏它。无论哪种方式都可以正常工作是的,这是事实,但是当您手动更改显示时,您会丢失旧的显示值,该值是在淡出元素之前设置的。
$(".link").fadeOut('slow', function(){
$(".link").css({"display":"inline"});
});
$(".link").fadeOut('slow', function(){
//animation complete callback
$(this).show().css('visibility', 'hidden');
});