Here is a jsFiddle with my code
如您所见,文本区域的高度完美地返回.但这是因为文本区域不是字体 – 面部模式.
在我的网站上,文本是font-face生成的,但它在font-face加载之前得到了高度,因为一旦你将div悬停一次并且第二次迭代运行,它就会返回正确的高度.
所以jQuery的高度是有效的,但只有在网站完全加载了font-face之后.
有没有解决这个问题?
谢谢你的任何指示.
简单的标记
<div class="home-mod"> <div class="mod-center"><img ... /></div> <div class="mod-info"> <!-- this is the slider,slides up when .mod-info is hovered --> <a class="mod-link" href="..." title="test">DYNAMIC FONT-FACE TEXT HERE</a> <div class="mod-excerpt"> DYNAMIC norMAL TEXT HERE </div> </div> </div>
当前的脚本 – 完整的工作完美,当文本不是前面的时候
$(function() { // positioning the current div.mod-info inside current div.home-mod $(".home-mod").each(function() { // this finds the div.mod-link height,and assigns var to div.mod-info top position var moduleLink = $(this).find(".mod-link").height(),modulePlus = moduleLink+20; $(this).find('.mod-info').css("top","-" + modulePlus + "px"); }); // animating current div.mod-info to new top position $("div.mod-info").hover(function() { // first iteration // getting dynamic overall height of div.mod-info and animate to var moduleInfo = $(this).height(); // this then animates to new position $(this).animate({ top: "-" + moduleInfo + "px" }); },function() { // second iteration // returns back to original postion var moduleLink = $(this).find(".mod-link").height(),modulePlus = moduleLink+20; $(this).animate({ top: "-" + modulePlus + "px" }); }); // this justs finds the link and in .home-mod and make its clickable $(".home-mod").click(function() { window.location = $(this).find("a.mod-link").attr("href"); return false; }); });
更新 – 已解决
$(window).load(function(){ // my script here... });