var scrolltotop = {
setting: {
startline: 300,
scrollto: 0,
scrollduration: 400,
fadeduration: [500, 100]
},
controlhtml: '',
controlattrs: { offsetx: 30, offsety: 80 },
anchorkeyword: "#top",
state: {
isvisible: false,
shouldvisible: false
}, scrollup: function () {
if (!this.cssfixedsupport) {
this.$control.css({ opacity: 0 });
}
var dest = isnan(this.setting.scrollto) ? this.setting.scrollto : parseint(this.setting.scrollto);
if (typeof dest == "string" && jquery("#" + dest).length == 1) {
dest = jquery("#" + dest).offset().top;
} else {
dest = 0;
}
this.$body.animate({ scrolltop: dest }, this.setting.scrollduration);
}, keepfixed: function () {
var $window = jquery(window);
var controlx = $window.scrollleft() + $window.width() - this.$control.width() - this.controlattrs.offsetx;
var controly = $window.scrolltop() + $window.height() - this.$control.height() - this.controlattrs.offsety;
this.$control.css({ left: controlx + "px", top: controly + "px" });
}, togglecontrol: function () {
var scrolltop = jquery(window).scrolltop();
if (!this.cssfixedsupport) {
this.keepfixed();
}
this.state.shouldvisible = (scrolltop >= this.setting.startline) ? true : false;
if (this.state.shouldvisible && !this.state.isvisible) {
this.$control.stop().animate({ opacity: 1 }, this.setting.fadeduration[0]);
this.state.isvisible = true;
} else {
if (this.state.shouldvisible == false && this.state.isvisible) {
this.$control.stop().animate({ opacity: 0 }, this.setting.fadeduration[1]);
this.state.isvisible = false;
}
}
}, init: function () {
jquery(document).ready(function ($) {
var mainobj = scrolltotop;
var iebrws = document.all;
mainobj.cssfixedsupport = !iebrws || iebrws && document.compatmode == "css1compat" && window.xmlhttprequest;
mainobj.$body = (window.opera) ? (document.compatmode == "css1compat" ? $("html") : $("body")) : $("html,body");
mainobj.$control = $('