300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > js通过八个点 拖动改变div大小的实现方法【javascript】

js通过八个点 拖动改变div大小的实现方法【javascript】

时间:2022-11-27 14:52:19

相关推荐

js通过八个点 拖动改变div大小的实现方法【javascript】

web前端|js教程

js,div拖动

web前端-js教程

手机应用商店源码下载,vscode怎么运行d盘,ubuntu 透明 代理,tomcat修改文件路径,爬虫的延时,php 得到ip,品牌seo优化电话多少,用php链接一个网站,jquery后台管理跳转模板lzw

Resize

#rRightDown,#rLeftDown,#rLeftUp,#rRightUp,#rRight,#rLeft,#rUp,#rDown{

position:absolute;background:#C00;width:6px;height:6px;z-index:5;font-size:0;}

#rLeftDown,#rRightUp{cursor:ne-resize;}

#rRightDown,#rLeftUp{cursor:nw-resize;}

#rRight,#rLeft{cursor:e-resize;}

#rUp,#rDown{cursor:n-resize;}

#rRightDown{ bottom:-3px; right:-3px;}

#rLeftDown{ bottom:-3px; left:-3px;}

#rRightUp{ top:-3px; right:-3px;}

#rLeftUp{ top:-3px; left:-3px;}

#rRight{ right:-3px; top:50%}

#rLeft{ left:-3px; top:50%}

#rUp{ top:-3px; left:50%}

#rDown{ bottom:-3px; left:50%}

var Sys = (function(ua){

var s = {};

s.IE = ua.match(/msie ([\d.]+)/)?true:false;

s.Firefox = ua.match(/firefox\/([\d.]+)/)?true:false;

s.Chrome = ua.match(/chrome\/([\d.]+)/)?true:false;

s.IE6 = (s.IE&&([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 6))?true:false;

s.IE7 = (s.IE&&([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 7))?true:false;

s.IE8 = (s.IE&&([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 8))?true:false;

return s;

})(navigator.userAgent.toLowerCase());

var $ = function (id) {

return document.getElementById(id);

};

var Css = function(e,o){

for(var i in o)

e.style[i] = o[i];

};

var Extend = function(destination, source) {

for (var property in source) {

destination[property] = source[property];

}

};

var Bind = function(object, fun) {

var args = Array.prototype.slice.call(arguments).slice(2);

return function() {

return fun.apply(object, args);

}

};

var BindAsEventListener = function(object, fun) {

var args = Array.prototype.slice.call(arguments).slice(2);

return function(event) {

return fun.apply(object, [event || window.event].concat(args));

}

};

var CurrentStyle = function(element){

return element.currentStyle || document.defaultView.getComputedStyle(element, null);

};

function addListener(element,e,fn){

element.addEventListener?element.addEventListener(e,fn,false):element.attachEvent(“on” + e,fn);

};

function removeListener(element,e,fn){

element.removeEventListener?element.removeEventListener(e,fn,false):element.detachEvent(“on” + e,fn)

};

var Class = function(properties){

var _class = function(){return (arguments[0] !== null && this.initialize && typeof(this.initialize) == ‘function’) ? this.initialize.apply(this, arguments) : this;};

_class.prototype = properties;

return _class;

};

var Resize =new Class({

initialize : function(obj){

this.obj = obj;

this.resizeelm = null;

this.fun = null; //记录触发什么事件的索引

this.original = []; //记录开始状态的数组

this.width = null;

this.height = null;

this.fR = BindAsEventListener(this,this.resize);

this.fS = Bind(this,this.stop);

},

set : function(elm,direction){

if(!elm)return;

this.resizeelm = elm;

addListener(this.resizeelm,’mousedown’,BindAsEventListener(this, this.start, this[direction]));

return this;

},

start : function(e,fun){

this.fun = fun;

this.original = [parseInt(CurrentStyle(this.obj).width),parseInt(CurrentStyle(this.obj).height),parseInt(CurrentStyle(this.obj).left),parseInt(CurrentStyle(this.obj).top)];

this.width = (this.original[2]||0) + this.original[0];

this.height = (this.original[3]||0) + this.original[1];

addListener(document,”mousemove”,this.fR);

addListener(document,’mouseup’,this.fS);

},

resize : function(e){

this.fun(e);

Sys.IE?(this.resizeelm.onlosecapture=function(){this.fS()}):(this.resizeelm.onblur=function(){this.fS()})

},

stop : function(){

removeListener(document, “mousemove”, this.fR);

removeListener(document, “mousemove”, this.fS);

window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();

},

up : function(e){

this.height>e.clientY?Css(this.obj,{top:e.clientY + “px”,height:this.height-e.clientY + “px”}):this.turnDown(e);

},

down : function(e){

e.clientY>this.original[3]?Css(this.obj,{top:this.original[3]+’px’,height:e.clientY-this.original[3]+’px’}):this.turnUp(e);

},

left : function(e){

e.clientX<this.width?Css(this.obj,{left:e.clientX +px,width:this.width-e.clientX + "px"}):this.turnRight(e);

},

right : function(e){

e.clientX>this.original[2]?Css(this.obj,{left:this.original[2]+’px’,width:e.clientX-this.original[2]+”px”}):this.turnLeft(e) ;

},

leftUp:function(e){

this.up(e);this.left(e);

},

leftDown:function(e){

this.left(e);this.down(e);

},

rightUp:function(e){

this.up(e);this.right(e);

},

rightDown:function(e){

this.right(e);this.down(e);

},

turnDown : function(e){

Css(this.obj,{top:this.height+’px’,height:e.clientY – this.height + ‘px’});

},

turnUp : function(e){

Css(this.obj,{top : e.clientY +’px’,height : this.original[3] – e.clientY +’px’});

},

turnRight : function(e){

Css(this.obj,{left:this.width+’px’,width:e.clientX- this.width +’px’});

},

turnLeft : function(e){

Css(this.obj,{left:e.clientX +’px’,width:this.original[2]-e.clientX+’px’});

}

});

window.onload = function(){

new Resize($(‘ss’)).set($(‘rUp’),’up’).set($(‘rDown’),’down’).set($(‘rLeft’),’left’).set($(‘rRight’),’right’).set($(‘rLeftUp’),’leftUp’).set($(‘rLeftDown’),’leftDown’).set($(‘rRightDown’),’rightDown’).set($(‘rRightUp’),’rightUp’);

}

p2p 网贷平台源码,前端新生使用vscode,怎样启动Ubuntu,tomcat大小写,sqlite数据库原本名字,疫情中高风险区爬虫多吗,php 充值接口,免费seo优化诊断分类,网站统计模块,淘宝客服旺旺模板lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。