Немного изменил плагин - плагин применяю ко всей странице, а на ней присутствовали несколько размеров шрифтов. При загрузке из localstorage один размер применялся ко всем элементам. А это немного не устраивало
$.fn.zoomtext = function (c) {
var old = JSON.parse(localStorage.getItem("elementsFont")) || {};
var a = {
min: 8, // 0 - no limits
max: 42, // 0 - no limits
increment: 1, // increment
recovery: !1, // recovery old
skip: !1, // skip child (child selector - "*")
conserve: !0 // save to local storage
}, a = $.extend(a, c);
// the selector of the element
var sel = this.selector;
if (!a.recovery && old && old[sel] && old[sel].increment) {
a.increment = a.increment * old[sel].increment;
}
a.recovery && (a.increment = 1);
a.conserve && (old[sel] = {
skip: a.skip,
increment: a.increment
});
localStorage.setItem("elementsFont", JSON.stringify(old));
// the collection - element and its child
c = $("*", this).add(this);
// firstly save original font size for each elements in the collection if it has not yet
c.each(function (a, c) {
var b = $(this).css("fontSize");
!$(this).data("fontSize") && $(this).data("fontSize", b).css("fontSize", b)
});
// if skip then remove from collection
a.skip && (c = c.not($(a.skip, this)));
return c.each(function (c, d) {
var b = $(this).css("fontSize");
b = parseFloat(b) * a.increment + 'px';
//b = $("<div/>", {css: {fontSize: b}}).css("fontSize", a.increment).css("fontSize");
a.max && parseFloat(b) > a.max && (b = a.max);
a.min && parseFloat(b) < a.min && (b = a.min);
// if recovery then set original fontSize
a.recovery && (b = $(this).data("fontSize"));
$(this).css({
fontSize: b
})
})
};
var old = JSON.parse(localStorage.getItem("elementsFont")) || {};
Object.keys(old).forEach(function (key) {
$(key).zoomtext({
increment: old[key].increment,
skip: old[key].skip,
conserve: false
});
});
$(".font-sizer .reset").click(function (e) {
e.preventDefault();
$('body').zoomtext({
recovery: true
});
});
$(".font-sizer .plus").click(function (e) {
e.preventDefault();
$('body').zoomtext({increment: 1.1});
});
$(".font-sizer .minus").click(function (e) {
e.preventDefault();
$('body').zoomtext({increment: 0.9});
});