左メニューをフロートするために次のプラグインを使用します。次のように開始しました。
$('.float-menu').galleryFloatMenu({duration: 800, topPosition: 68});
問題と行を以下に示します。
(function($){
$.galleryFloatMenu = function(el, options) {
var base = this;
base.$el = $(el);
base.el = el;
base.$el.data('galleryFloatMenu', base);
base.init = function() {
base.options = $.extend({}, $.galleryFloatMenu.defaultOptions, options);
var $parent = base.$el.parent();
var parentPaddingTop = parseInt($parent.css('padding-top'));
var startOffset = $parent.offset().top;
recalcHeight($parent);
var calculatedOptions = {
startOffset: startOffset,
offsetY: parentPaddingTop
}
base.options = $.extend(calculatedOptions, base.options);
base.$el.css({ position: 'absolute' });
base.enableScroll();
};
base.scroll = function() {
base.$el.stop();
var pastStartOffset = $(document).scrollTop() > base.options.startOffset;
var objFartherThanTopPos = base.$el.offset().top > base.options.startOffset;
var objBiggerThanWindow = base.$el.outerHeight() < $(window).height();
var doScroll = (pastStartOffset || objFartherThanTopPos) && objBiggerThanWindow;
var docScrollTop = $(document).scrollTop();
if( doScroll ){
var newpos = (docScrollTop - base.options.startOffset + base.options.offsetY );
if ( newpos > base.options.bottomPos )
newpos = base.options.bottomPos;
if ( docScrollTop < base.options.startOffset ) {
newpos = base.options.offsetY;
}
base.$el.animate({ top: newpos+options.topPosition }, base.options.duration, 'easeOutCirc' );
}
};
base.enableScroll = function() {
$(window).bind('scroll', base.scroll);
}
base.disableScroll = function() {
$(window).unbind('scroll', base.scroll);
}
base.init();
};
$.galleryFloatMenu.defaultOptions = { duration: 1200, paused: false, topPosition: 0 }
$.fn.galleryFloatMenu = function(options) {
return this.each(function() {
(new $.galleryFloatMenu(this, options));
});
};
// PRIVATE FUNCTIONS
function recalcHeight($obj) {
//$obj.css({ height: $obj.parent().height() - $obj.height()})
};
})(jQuery);
var calculatedOptions = {
startOffset: startOffset,
offsetY: parentPaddingTop
}
IE7 エラー : 識別子、文字列、または数値が必要です
他のすべてのブラウザで機能する同じスクリプト