html新手引导遮罩,基于mootools插件实现遮罩层新手引导

插件代码

/*

---

name: UserGuider

authors:

- Garland Yang

requires: [Core/Class, Core/Element.Style, Core/Element.Event, Core/Element.Dimensions]

version:

- 1.0

...

*/

var UserGuider = new Class({

Implements: [Options, Events],

options: {

UserGuideList: new Array(),

step: 0

},

initialize: function (options) {

this.setOptions(options);

this.step = this.options.step;

},

createGuide: function () {

var self = this;

$$('.userGuide').dispose();

var UserGuideList = this.options.UserGuideList;

var config = UserGuideList[this.step];

if (config == null) {

return;

}

var ele = $$('.' + config.className)[0];

if (ele == null) {

return;

}

$$('.' + config.className + ' a').set('target', '_blank');

var top = ele.getCoordinates().top;

var right = ele.getCoordinates().right;

var bottom = ele.getCoordinates().bottom;

var left = ele.getCoordinates().left;

var width = ele.getCoordinates().width;

var height = ele.getCoordinates().height;

var x = window.getScrollSize().x;

var y = window.getScrollSize().y;

this.createShadowDiv('shadowTop', left, 0, width, top);

this.createShadowDiv('shadowRight', right, 0, x - right, y);

this.createShadowDiv('shadowButtom', left, bottom, width, y - bottom);

this.createShadowDiv('shadowLeft', 0, 0, left, y);

if (config.src != null) {

this.createUserGuideImg(left + config.imgLeft, top + config.imgTop, config.src);

}

if (config.navUrl != null) {

this.createUserGuideNavImg(right - 50, bottom, config.navUrl);

}

if (this.step > 0) {

this.createUserButton('userguide_undo', 'UserGuide/undo.png', this.step - 1);

}

if (this.step < UserGuideList.length - 1) {

this.createUserButton('userguide_next', 'UserGuide/next.png', this.step + 1);

}

this.createUserButton('userguide_finish', 'UserGuide/finish.png', 10000);

this.changeUserGuideButton();

if (config.src2 != null) {

this.createUserGuideImg(left + config.imgLeft2, top + config.imgTop2, config.src2);

}

return this;

},

createShadowDiv: function (id, left, top, width, height) {

var self = this;

var div = new Element('div');

div.set('id', id);

div.addClass('userGuide');

div.setStyles({

left: left + 'px',

top: top + 'px',

width: width + 'px',

height: height + 'px',

position: 'absolute',

'background-color': '#000',

'z-index': 100,

opacity: 0.5,

filter: 'alpha(opacity=50)'

});

$$('body').adopt(div);

return this;

},

createUserGuideNavImg: function (left, top, nav) {

var self = this;

var img = new Element('img');

img.addClass('userGuideNav');

img.addClass('userGuide');

img.setStyles({

cursor: 'pointer',

'z-index': 10000,

left: left + 'px',

top: top + 'px',

position: 'absolute'

});

img.set('src', 'userguide/nav.png');

img.addEvent('click', function () {

window.open(nav);

});

$$('body').adopt(img);

return this;

},

createUserGuideImg: function (left, top, src) {

var self = this;

var img = new Element('img');

img.addClass('userGuideImg');

img.addClass('userGuide');

img.setStyles({

'z-index': 1000,

left: left + 'px',

top: top + 'px',

position: 'absolute'

});

img.set('src', src);

$$('body').adopt(img);

return this;

},

createUserButton: function (className, src, thisStep) {

var self = this;

var img = new Element('img');

img.addClass(className);

img.addClass('userGuide');

img.setStyles({

cursor: 'pointer',

'z-index': 1000000,

position: 'absolute'

});

img.set('src', src);

img.addEvent('click', function () {

self.step = thisStep;

self.createGuide();

});

$$('body').adopt(img);

return this;

},

changeUserGuideButton: function () {

var self = this;

var size = window.getSize();

var scroll = window.getScroll();

var scrollSize = window.getScrollSize();

$$('.userguide_finish').setStyles({

left: (size.x - 220) + 'px',

top: (size.y + scroll.y - 80) + 'px'

});

$$('.userguide_next').setStyles({

left: (size.x - 420) + 'px',

top: (size.y + scroll.y - 80) + 'px'

});

$$('.userguide_undo').setStyles({

left: (size.x - 620) + 'px',

top: (size.y + scroll.y - 80) + 'px'

});

return this;

}

});

调用方式

var UserGuider;

var UserGuideList = new Array({

className: 'step0',

src: 'UserGuide/step0.png',

imgTop: 50,

imgLeft: 50

}, {

className: 'step1',

src: 'UserGuide/step1.png',

imgTop: -150,

imgLeft: 0,

src2: 'UserGuide/pic/1.gif',

imgTop2: 210,

imgLeft2: 450

}, {

className: 'step2',

src: 'UserGuide/step2.png',

imgTop: 0,

imgLeft: -600,

navUrl: '/MyMessageCenter.aspx',

src2: 'UserGuide/pic/2.gif',

imgTop2: 110,

imgLeft2: 80

}, {

className: 'step3',

src: 'UserGuide/step3.png',

imgTop: -150,

imgLeft: 130,

navUrl: '/MyTaskSearch.aspx',

src2: 'UserGuide/pic/3.png',

imgTop2: -120,

imgLeft2: 250

});

window.addEvent('domready',function(){

UserGuider = new UserGuider({

UserGuideList: UserGuideList

})

UserGuider.createGuide();

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值