我正在尝试设置一个插件,它运行得很好,但我注意到第一个字符(first中的F)在页面加载时没有被分配正确的宽度。这个插件允许你鼠标悬停,它会变成第二个单词,然后在鼠标悬停时,它会变回第一个单词&则第一个字符的宽度是正确的。所以我试着在它第一次显示时修复它:
var firstltrwdraw = $('span.char1').width(); // this width is actually 39px but it keeps pulling 27
console.log('1st Width Raw: ' + firstltrwdraw);
var firstltrwd = parseFloat(firstltrwdraw);
console.log('1st Width: ' + firstltrwd);
console.log('1st Type: ' + typeof firstltrwd);
$('span.char1').parent().css({'width': firstltrwd + 'px'});
这是一些典型的。html:
<div class="lslide_wrap">
<a href="javascript:void(0)" ...>
<span class="sl-wrapper" ...>
<span class="char1 sl-w2" ...>S</span> // first letter of Second
<span class="char1 sl-w1" ...>F</span> // first letter of First
</span>
<span class="sl-wrapper" ...>
... // second letter of each word, etc
...
<span>
</a>
</div>
这是一个演示页面:http://www.partiproductions.com/letterslide_test/index.html
当然,如果能从char1中获得宽度并将其分配给其父sl包装器,我们将不胜感激。
谢谢,Bill
不确定,但.css('width')
返回类似"100px"的值,Math.abs("100px")
给出NaN
。
尝试使用$('span.char1').width()
。
此外,您必须记住向width
添加任何margin
和padding
值。
必须使用填充-正在动态更改必须编写脚本等待动画结束,然后分配填充,这解决了视觉宽度问题;)