我正在使用在 jsfiddle http://jsfiddle.net/mekwall/fNyHs/上找到的代码,因为它似乎最适合我的情况,因为我需要动态文本来适应容器(通过更改字体大小)。
(function($) {
$.fn.textfill = function(maxFontSize, maxWords) {
maxFontSize = parseInt(maxFontSize, 10);
maxWords = parseInt(maxWords, 10) || 4;
return this.each(function(){
var self = $(this),
orgText = self.text(),
fontSize = parseInt(self.css("fontSize"), 10),
lineHeight = parseInt(self.css("lineHeight"), 10),
maxHeight = self.height(),
maxWidth = self.width(),
words = self.text().split(" ");
function calcSize(text) {
var ourText = $("<span class='dyntextval'><a href='#' class='trigger'>"+text+"</a></span>").appendTo(self),
multiplier = maxWidth/ourText.width(),
newSize = fontSize*(multiplier-0.1);
ourText.css(
"fontSize",
(maxFontSize > 0 && newSize > maxFontSize) ?
maxFontSize :
newSize
);
var scrollHeight = self[0].scrollHeight;
if (scrollHeight > maxHeight) {
multiplier = maxHeight/scrollHeight;
newSize = (newSize*multiplier);
ourText.css(
"fontSize",
(maxFontSize > 0 && newSize > maxFontSize) ?
maxFontSize :
newSize
);
}
}
self.empty();
if (words.length > maxWords) {
while (words.length > 0) {
var newText = words.splice(0, maxWords).join(" ");
console.log
calcSize(newText);
self.append("<br>");
}
} else {
calcSize(orgText);
}
});
};
})(jQuery);
$(document).ready(function() {
$('.large').textfill({ maxFontPixels: 120, minFontPixels: 36});
$('.medium').textfill({ maxFontPixels: 32 });
$('.small').textfill({ maxFontPixels: 18 });
});
但是我在这部分遇到了问题:
var ourText = $(""+text+"").appendTo(self),
问题是我需要一个链接,一旦点击它就会切换另一个 div。
切换:
$(".side-toggle").hide();
$('.trigger').click(function() {
$(this).closest('.group').find('.side-toggle').slideToggle();
return false; //Prevent the browser jump to the link anchor
});
$(".toggle").click(function() {
$(this).next(".group").slideToggle();
});
切换本身可以工作,但当我还实现代码文本填充代码时则不行。
的HTML:
<div class="quepasa">
<div class="large artist">
<span class="dyntextval">
<a title="<?php the_title();?>" href="#" class="trigger">
<?php if ( get_the_title() ) the_title(); else the_ID(); ?>+
</a>
</span>
</div>
</div>
我没有足够的 jQuery 知识来知道如何:a) 将链接放入?b) 保留切换功能
我希望有人可以帮助我。