最終形?
mozzilaで折り返してるリンクテキストが飛ぶ症状があったので修正。
結局無理やりスペース突っ込んで修正。
文字間調整してるので見た目はそんなに変じゃないけど、Ctrl+Fとかの検索は効かなくなる。
new function () {
var css = 'position: relative;';
if ($.browser.mozilla) css += 'letter-spacing:-2px;';
$('head').append([
'<style type="text/css">',
'.brbr { '+css+' }',
'</style>'
].join(''));
};
$(function () {
var pos = [3, -3, 3, -3, 3, -3];
var a = document.getElementById('menu').getElementsByTagName('a');
var len = a.length;
$('#menu a').mouseover(function () {
var ps = pos.concat();
var val = setInterval(function () {
var p = ps.shift();
if (p) return document.body.style.marginTop = p+'px';
clearInterval(val);
document.body.style.marginTop = '';
}, 10);
});
var match = $.browser.safari ? ['(.)(.)?', '$1$2'] : ['(.)', '$1'];
match[0] = new RegExp(match[0], 'g');
match[1] = $.browser.mozilla ? ' <span class="brbr"> '+match[1]+' </span> ' : '<span class="brbr">'+match[1]+'</span>';
$('a:not(:hidden)')
.each(function () {
var child = this.childNodes;
var length = child.length;
for (var i = 0; i < length; ++i) {
var self = child[i];
if (self.nodeType != 3 && (!self.nodeValue || self.nodeValue.match(/^\s*$/))) continue;
self.parentNode.innerHTML = self.nodeValue.replace(match[0], match[1]);
};
})
.hover(function () {
if ($.data(this, 'brbr')) return;
$.data(this, 'brbr', true);
var ps = pos.concat();
var $_ = $(this);
var val = setInterval(function () {
var p = ps.shift();
if (!p) {
$_.find('.brbr').css('top', '');
return clearInterval(val);
};
$_.find('.brbr').each(function (i) {
$(this).css({top:((i + ps.length) % 2) ? -3 : 3})
});
}, 25);
}, function () {
$.data(this, 'brbr', false);
});
;
});
mozzilaで折り返してるリンクテキストが飛ぶ症状があったので修正。
結局無理やりスペース突っ込んで修正。
文字間調整してるので見た目はそんなに変じゃないけど、Ctrl+Fとかの検索は効かなくなる。
new function () {
var css = 'position: relative;';
if ($.browser.mozilla) css += 'letter-spacing:-2px;';
$('head').append([
'<style type="text/css">',
'.brbr { '+css+' }',
'</style>'
].join(''));
};
$(function () {
var pos = [3, -3, 3, -3, 3, -3];
var a = document.getElementById('menu').getElementsByTagName('a');
var len = a.length;
$('#menu a').mouseover(function () {
var ps = pos.concat();
var val = setInterval(function () {
var p = ps.shift();
if (p) return document.body.style.marginTop = p+'px';
clearInterval(val);
document.body.style.marginTop = '';
}, 10);
});
var match = $.browser.safari ? ['(.)(.)?', '$1$2'] : ['(.)', '$1'];
match[0] = new RegExp(match[0], 'g');
match[1] = $.browser.mozilla ? ' <span class="brbr"> '+match[1]+' </span> ' : '<span class="brbr">'+match[1]+'</span>';
$('a:not(:hidden)')
.each(function () {
var child = this.childNodes;
var length = child.length;
for (var i = 0; i < length; ++i) {
var self = child[i];
if (self.nodeType != 3 && (!self.nodeValue || self.nodeValue.match(/^\s*$/))) continue;
self.parentNode.innerHTML = self.nodeValue.replace(match[0], match[1]);
};
})
.hover(function () {
if ($.data(this, 'brbr')) return;
$.data(this, 'brbr', true);
var ps = pos.concat();
var $_ = $(this);
var val = setInterval(function () {
var p = ps.shift();
if (!p) {
$_.find('.brbr').css('top', '');
return clearInterval(val);
};
$_.find('.brbr').each(function (i) {
$(this).css({top:((i + ps.length) % 2) ? -3 : 3})
});
}, 25);
}, function () {
$.data(this, 'brbr', false);
});
;
});
コメントする