⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynlayer-glide.js

📁 这是一个功能基本完善的系统
💻 JS
字号:
// DynLayer Glide Methods// alternative DynLayer animation methods with an acceleration effect// Copyright (C) 1999 Dan Steinman// Distributed under the terms of the GNU Library General Public License// Available at http://www.dansteinman.com/dynapi/function DynLayerGlideTo(startSpeed,endSpeed,endx,endy,angleinc,speed,fn) {	if (endx==null) endx = this.x	if (endy==null) endy = this.y	var distx = endx-this.x	var disty = endy-this.y	this.glideStart(startSpeed,endSpeed,endx,endy,distx,disty,angleinc,speed,fn)}function DynLayerGlideBy(startSpeed,endSpeed,distx,disty,angleinc,speed,fn) {	var endx = this.x + distx	var endy = this.y + disty	this.glideStart(startSpeed,endSpeed,endx,endy,distx,disty,angleinc,speed,fn)}function DynLayerGlideStart(startSpeed,endSpeed,endx,endy,distx,disty,angleinc,speed,fn) {	if (this.glideActive) return	if (endx==this.x) var slantangle = 90	else if (endy==this.y) var slantangle = 0	else var slantangle = Math.abs(Math.atan(disty/distx)*180/Math.PI)	if (endx>=this.x) {		if (endy>this.y) slantangle = 360-slantangle	}	else {		if (endy>this.y) slantangle = 180+slantangle		else slantangle = 180-slantangle	}	slantangle *= Math.PI/180	var amplitude = Math.sqrt(Math.pow(distx,2) + Math.pow(disty,2))	if (!fn) fn = null	this.glideActive = true	if (startSpeed == "fast") {		if (endSpeed=="fast") this.glide(1,amplitude/2,0,90,this.x,this.y,slantangle,endx,endy,distx,disty,angleinc,speed,fn)		else this.glide(0,amplitude,0,90,this.x,this.y,slantangle,endx,endy,distx,disty,angleinc,speed,fn)	}	else {		if (endSpeed=="fast") this.glide(0,amplitude,-90,0,this.x+distx,this.y+disty,slantangle,endx,endy,distx,disty,angleinc,speed,fn)		else this.glide(0,amplitude/2,-90,90,this.x+distx/2,this.y+disty/2,slantangle,endx,endy,distx,disty,angleinc,speed,fn)	}}function DynLayerGlide(type,amplitude,angle,endangle,centerX,centerY,slantangle,endx,endy,distx,disty,angleinc,speed,fn) {	if (angle < endangle && this.glideActive) {		angle += angleinc		var u = amplitude*Math.sin(angle*Math.PI/180)		var x = centerX + u*Math.cos(slantangle)		var y = centerY - u*Math.sin(slantangle)		this.moveTo(x,y)		this.onGlide()		if (this.glideActive) setTimeout(this.obj+'.glide('+type+','+amplitude+','+angle+','+endangle+','+centerX+','+centerY+','+slantangle+','+endx+','+endy+','+distx+','+disty+','+angleinc+','+speed+',\''+fn+'\')',speed)		else this.onGlideEnd()	}	else {		if (type==1) this.glide(0,amplitude,-90,0,this.x+distx/2,this.y+disty/2,slantangle,endx,endy,distx,disty,angleinc,speed,fn)		else {			this.glideActive = false			this.moveTo(endx,endy)			this.onGlide()			this.onGlideEnd()			eval(fn)		}	}}DynLayerGlideInit = new Function()DynLayer.prototype.glideInit = new Function()DynLayer.prototype.glideTo = DynLayerGlideToDynLayer.prototype.glideBy = DynLayerGlideByDynLayer.prototype.glideStart = DynLayerGlideStartDynLayer.prototype.glide = DynLayerGlideDynLayer.prototype.onGlide = new Function()DynLayer.prototype.onGlideEnd = new Function()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -