Javascript JQuery就绪函数问题
我使用的是dropShadow插件,JQueryJavascript JQuery就绪函数问题,javascript,jquery,jquery-plugins,jquery-events,dropshadow,Javascript,Jquery,Jquery Plugins,Jquery Events,Dropshadow,我使用的是dropShadow插件,JQueryready函数有问题 当我有这样的代码时: $(document).ready(function() { $('div#shadow').dropShadow(); $('#navigation li.mainmenu').bind('mouseover', navigation_open); $('#navigation li').bind('mouseout', navigation_timer); }); 它只会在下
ready
函数有问题
当我有这样的代码时:
$(document).ready(function() {
$('div#shadow').dropShadow();
$('#navigation li.mainmenu').bind('mouseover', navigation_open);
$('#navigation li').bind('mouseout', navigation_timer);
});
它只会在下拉菜单出现后生成阴影,这是第二个功能。你知道为什么吗
JS的完整代码是:
$(document).ready(
function()
{
$('#navigation li.mainmenu').bind('mouseover', navigation_open);
$('#navigation li').bind('mouseout', navigation_timer);
});
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;
var highlightmenu = 0;
var returncolor = 0;
var textreturncolor = 0;
var height = 0;
var originaltop = 0;
var resettop = 0;
var top = 0;
var shadowExists = 0;
var dropshadow = 0;
function drawShadow(){
//draw the shadow only on mouse enter
dropshadow = $(this).find('ul').dropShadow({top: 4, opacity: 1});
$('.dropShadow').css('visibility','visible');
}
function navigation_open()
{ navigation_canceltimer();
navigation_close();
height = $(this).height();
ddmenuitem = $(this).find('ul');
//Double Liners are above 40 pixels
menu = ddmenuitem.find('li');
/*===Need to get the top pos. of the item and adjust it since it is absolute; relative does not work*/
top = ddmenuitem.position().top;
resettop = top;
if (height > 40){
top = top - 53;
}
else{
top = top - 35;
}
ddmenuitem.css('top', top.toString() + "px");
//---ADD A DROP SHADOW...USING JQUERY PLUGIN
ddmenuitem.dropShadow({top: 4, opacity: 1});
$('.dropShadow').css('visibility','visible');
ddmenuitem.css('visibility', 'visible');
returncolor = $(this).find('a#highlight').css('background-color');
textreturncolor = $(this).find('a#highlight').css('color');
highlightmenu = $(this).find('a#highlight').css('background-color','#6487ad');
highlightmenu.css('color','#ffffff');
highlightmenu.css('font-weight','bold');}
function navigation_close()
{ if(ddmenuitem){
ddmenuitem.css('visibility', 'hidden');
ddmenuitem.css('top',resettop);
ddmenuitem.removeShadow();
}
if(highlightmenu){ highlightmenu.css('background-color',returncolor);
highlightmenu.css('color',textreturncolor);
}
}
function navigation_timer()
{
closetimer = window.setTimeout(navigation_close, timeout);}
function navigation_canceltimer()
{ if(closetimer)
{
window.clearTimeout(closetimer);
closetimer = null;}}
document.onclick = navigation_close;
对于静态,HTML如下所示:
<div id="shadow">
//images here
</div>
//这里的图像
我不知道您是否还需要查看,但是下拉菜单只是一个列表,但我希望能够将其应用于静态图像,直到下拉菜单出现为止。dropshadow插件似乎是为固定页面元素设计的。从dropshadow js文件: 此jQuery插件在页面元素后面添加软阴影。它仅用于向大多数静止对象(如页面标题、照片或内容容器)添加少量阴影
编辑:也许你可以用css达到你想要的效果 dropshadow插件似乎是为固定页面元素设计的。从dropshadow js文件: 此jQuery插件在页面元素后面添加软阴影。它仅用于向大多数静止对象(如页面标题、照片或内容容器)添加少量阴影
编辑:也许你可以用css达到你想要的效果 当第一次调用dropShadow()时,问题在于CSS中,类dropShadow的CSS被设置为hiddent(这是为了使动态部分在IE中工作(所有其他浏览器都可以不使用它)。在javascript中,您可以通过$('.dropShadow').CSS('visibility','visible')看到这一点;正在被调用。当第一次调用dropShadow()时,问题在于CSS中,类dropShadow的CSS被设置为hiddent(它被放置在那里是为了使动态片段在IE中工作(没有它所有其他浏览器都可以)。在javascript中,您可以通过$('.dropShadow').CSS('visibility','visible')看到这一点;被调用。你能提供一个小的HTML片段来帮助给出上下文吗?也许你能提供一些演示代码?我已经在我的问题上更新了它,谢谢。你能提供一个小的HTML片段来帮助给出上下文吗?也许你能提供一些演示代码吗?我已经在我的问题上更新了它,谢谢。它与下拉菜单配合得很好,只是不是静态的I法师。当下拉菜单出现时,它会加载图像的阴影,尽管这与下拉菜单无关。我不知道为什么。谢谢你的帮助,我已经尝试了CSS路线,CSS 3目前不太受支持,尤其是那种效果,我可能会使用gimp添加它,将效果添加到我想要的图像中。我只是想如果可能的话e通过Jquery做这件事会使网站更新更容易。啊,好吧。上面的链接包括IE 5.5以及最新(虽然不是最新)版本的populer浏览器,所以它不是纯粹的css3。但是如果你真的想走Jquery路线,你可能想提供一个简单的提琴来说明问题()我们可能可以提供更多帮助。它与下拉菜单配合得很好,只是不支持静态图像。当下拉菜单出现时,它会加载图像的阴影,即使它与下拉菜单无关。我不知道为什么。感谢你的帮助,我试过CSS路线,CSS 3目前不太受支持,尤其是那种效果,我可能会使用gimp添加它来为我想要的图片添加效果。我只是想,如果可以通过Jquery这样做的话,更新网站会更容易。啊,好的。上面的链接包括IE 5.5和最近的(虽然不是最新的)Popper浏览器的版本,因此它不是纯css3。但是如果你真的想走jquery路线,你可能想提供一个简单的提琴来显示问题(),我们可以提供更多帮助。