H5游戏awardRoutate.js
Posted 小猴子会上树
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H5游戏awardRoutate.js相关的知识,希望对你有一定的参考价值。
!function ($) {
for (var supportedCSS, styles = document.getElementsByTagName("head")[0].style, toCheck = "transformProperty WebkitTransform OTransform msTransform MozTransform".split(" "), a = 0; a < toCheck.length; a++) void 0 !== styles[toCheck[a]] && (supportedCSS = toCheck[a])
var IE = eval(‘"v"=="x0B"‘)
jQuery.fn.extend({
rotate: function (t) {
if (0 !== this.length && void 0 !== t) {
"number" == typeof t && (t = {angle: t})
for (var i = [], e = 0, s = this.length; s > e; e++) {
var h = this.get(e)
if (h.Wilq32 && h.Wilq32.PhotoEffect) h.Wilq32.PhotoEffect._handleRotation(t)
else {
var a = $.extend(!0, {}, t), n = new Wilq32.PhotoEffect(h, a)._rootObj
i.push($(n))
}
}
return i
}
}, getRotateAngle: function () {
for (var t = [], i = 0, e = this.length; e > i; i++) {
var s = this.get(i)
s.Wilq32 && s.Wilq32.PhotoEffect && (t[i] = s.Wilq32.PhotoEffect._angle)
}
return t
}, stopRotate: function () {
for (var t = 0, i = this.length; i > t; t++) {
var e = this.get(t)
e.Wilq32 && e.Wilq32.PhotoEffect && clearTimeout(e.Wilq32.PhotoEffect._timer)
}
}
}), Wilq32 = window.Wilq32 || {}, Wilq32.PhotoEffect = function () {
return supportedCSS ? function (t, i) {
t.Wilq32 = {PhotoEffect: this}, this._img = this._rootObj = this._eventObj = t, this._handleRotation(i)
} : function (t, i) {
if (this._img = t, this._rootObj = document.createElement("span"), this._rootObj.style.display = "inline-block", this._rootObj.Wilq32 = {PhotoEffect: this}, t.parentNode.insertBefore(this._rootObj, t), t.complete) this._Loader(i)
else {
var e = this
jQuery(this._img).bind("load", function () {
e._Loader(i)
})
}
}
}(), Wilq32.PhotoEffect.prototype = {
_setupParameters: function (t) {
this._parameters = this._parameters || {}, "number" != typeof this._angle && (this._angle = 0), "number" == typeof t.angle && (this._angle = t.angle), this._parameters.animateTo = "number" == typeof t.animateTo ? t.animateTo : this._angle, this._parameters.step = t.step || this._parameters.step || null, this._parameters.easing = t.easing || this._parameters.easing || function (t, i, e, s, h) {
return -s * ((i = i / h - 1) * i * i * i - 1) + e
}, this._parameters.duration = t.duration || this._parameters.duration || 1e3, this._parameters.callback = t.callback || this._parameters.callback || function () {
}, t.bind && t.bind != this._parameters.bind && this._BindEvents(t.bind)
}, _handleRotation: function (t) {
this._setupParameters(t), this._angle == this._parameters.animateTo ? this._rotate(this._angle) : this._animateStart()
}, _BindEvents: function (t) {
if (t && this._eventObj) {
if (this._parameters.bind) {
var i = this._parameters.bind
for (var e in i) i.hasOwnProperty(e) && jQuery(this._eventObj).unbind(e, i[e])
}
this._parameters.bind = t
for (var e in t) t.hasOwnProperty(e) && jQuery(this._eventObj).bind(e, t[e])
}
}, _Loader: function () {
return IE ? function (t) {
var i = this._img.width, e = this._img.height
this._img.parentNode.removeChild(this._img), this._vimage = this.createVMLNode("image"), this._vimage.src = this._img.src, this._vimage.style.height = e + "px", this._vimage.style.width = i + "px", this._vimage.style.position = "absolute", this._vimage.style.top = "0px", this._vimage.style.left = "0px", this._container = this.createVMLNode("group"), this._container.style.width = i, this._container.style.height = e, this._container.style.position = "absolute", this._container.setAttribute("coordsize", i - 1 + "," + (e - 1)), this._container.appendChild(this._vimage), this._rootObj.appendChild(this._container), this._rootObj.style.position = "relative", this._rootObj.style.width = i + "px", this._rootObj.style.height = e + "px", this._rootObj.setAttribute("id", this._img.getAttribute("id")), this._rootObj.className = this._img.className, this._eventObj = this._rootObj, this._handleRotation(t)
} : function (t) {
this._rootObj.setAttribute("id", this._img.getAttribute("id")), this._rootObj.className = this._img.className, this._width = this._img.width, this._height = this._img.height, this._widthHalf = this._width / 2, this._heightHalf = this._height / 2
var i = Math.sqrt(this._height * this._height + this._width * this._width)
this._widthAdd = i - this._width, this._heightAdd = i - this._height, this._widthAddHalf = this._widthAdd / 2, this._heightAddHalf = this._heightAdd / 2, this._img.parentNode.removeChild(this._img), this._aspectW = (parseInt(this._img.style.width, 10) || this._width) / this._img.width, this._aspectH = (parseInt(this._img.style.height, 10) || this._height) / this._img.height, this._canvas = document.createElement("canvas"), this._canvas.setAttribute("width", this._width), this._canvas.style.position = "relative", this._canvas.style.left = -this._widthAddHalf + "px", this._canvas.style.top = -this._heightAddHalf + "px", this._canvas.Wilq32 = this._rootObj.Wilq32, this._rootObj.appendChild(this._canvas), this._rootObj.style.width = this._width + "px", this._rootObj.style.height = this._height + "px", this._eventObj = this._canvas, this._cnv = this._canvas.getContext("2d"), this._handleRotation(t)
}
}(), _animateStart: function () {
this._timer && clearTimeout(this._timer), this._animateStartTime = +new Date, this._animateStartAngle = this._angle, this._animate()
}, _animate: function () {
var t = +new Date, i = t - this._animateStartTime > this._parameters.duration
if (i && !this._parameters.animatedGif) clearTimeout(this._timer)
else {
if (this._canvas || this._vimage || this._img) {
var e = this._parameters.easing(0, t - this._animateStartTime, this._animateStartAngle, this._parameters.animateTo - this._animateStartAngle, this._parameters.duration)
this._rotate(~~(10 * e) / 10)
}
this._parameters.step && this._parameters.step(this._angle)
var s = this
this._timer = setTimeout(function () {
s._animate.call(s)
}, 10)
}
this._parameters.callback && i && (this._angle = this._parameters.animateTo, this._rotate(this._angle), this._parameters.callback.call(this._rootObj))
}, _rotate: function () {
var t = Math.PI / 180
return IE ? function (t) {
this._angle = t, this._container.style.rotation = t % 360 + "deg"
} : supportedCSS ? function (t) {
this._angle = t, this._img.style[supportedCSS] = "rotate(" + t % 360 + "deg)"
} : function (i) {
this._angle = i, i = i % 360 * t, this._canvas.width = this._width + this._widthAdd, this._canvas.height = this._height + this._heightAdd, this._cnv.translate(this._widthAddHalf, this._heightAddHalf), this._cnv.translate(this._widthHalf, this._heightHalf), this._cnv.rotate(i), this._cnv.translate(-this._widthHalf, -this._heightHalf), this._cnv.scale(this._aspectW, this._aspectH), this._cnv.drawImage(this._img, 0, 0)
}
}()
}, IE && (Wilq32.PhotoEffect.prototype.createVMLNode = function () {
document.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)")
try {
return !document.namespaces.rvml && document.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"), function (t) {
return document.createElement("<rvml:" + t + ‘ class="rvml">‘)
}
} catch (t) {
return function (t) {
return document.createElement("<" + t + ‘ xmlns="urn:schemas-microsoft.com:vml" class="rvml">‘)
}
}
}())
}(jQuery)
以上是关于H5游戏awardRoutate.js的主要内容,如果未能解决你的问题,请参考以下文章