0

我有一段代码在 1.3.2 中工作得很好,但在 1.7.1 中被破坏了,任何人都可以指出如果代码不正确怎么办:

(function($){
$.fn.extend({ 
    autoscroll: function(options) {
        return this.each(function() {
            var $this = $(this);
            $this.css({overflow:'hidden'});
            if(options == 'horizontal') $this.mousemove(function(e) {
                var width = $this.width();
                $this.attr({ scrollLeft: ($this.attr('scrollWidth')-width)*(0.5-Math.cos(Math.PI*(e.pageX-$this.offset().left)/width)/2) });
            });
            else if(options == 'vertical') $this.mousemove(function(e) {
                var height = $this.height();
                $this.attr({ scrollTop: ($this.attr('scrollHeight')-height)*(0.5-Math.cos(Math.PI*(e.pageY-$this.offset().top)/height)/2) });
            });
            else if(options == 'both') $this.mousemove(function(e) {
                var width = $this.width(), height = $this.height();
                $this.attr({ scrollLeft: ($this.attr('scrollWidth')-width)*(0.5-Math.cos(Math.PI*(e.pageX-$this.offset().left)/width)/2), scrollTop: ($this.attr('scrollHeight')-height)*(0.5-Math.cos(Math.PI*(e.pageY-$this.offset().top)/height)/2) });
            });
            else $this.mousemove(function(e) {
                var width = $this.width(), height = $this.height();
                $this.attr({ scrollLeft: ($this.attr('scrollWidth')-width)*(0.5-Math.cos(Math.PI*(e.pageX-$this.offset().left)/width)/2), scrollTop: ($this.attr('scrollHeight')-height)*(0.5-Math.cos(Math.PI*(e.pageY-$this.offset().top)/height)/2) });
            });
        });
    }
});
})(jQuery);
4

1 回答 1

2

仅用于attr()HTML 属性。对于 JS/DOM 属性(例如 scrollWidth、scrollTop)使用prop()

prop()已在 v1.6 中引入。

演示:http: //jsfiddle.net/doktormolle/uKMWQ/

于 2012-04-14T23:06:45.567 回答