MediaWiki:Gadget-MoveResizeAbsolute.js
Shënim: Pas ruajtjes së parapëlqimeve ose kryerjes së ndryshimet, për t'ju shfaqur dallimet duhet të pastroni ruajtësin (cache) e shfletuesit. Pastrimi i ruajtësit të shfletuesve bëhet duke shtypur në të njëjten kohë Ctrl+Shift+Reload për Mozilla/Safari/Konqueror ose ctrl+shift+r për IE ose Ctrl+f5 për Opera: F5.
/* {{Projet:JavaScript/Script|MoveResizeAbsolute}} */
/* <noinclude>
Funksionet standarde për të trajtuar artikuj në pozicion absolut :
* funksioni "move",
* funksioni "resize"
Shiko faqen e diskutimit.</noinclude>
== KODI BURIMIT ==
<!--
*/
/* -->
=== FUNKSIONI : browser ===
* Rregullon "true" nese browseri është Internet Explorer
<!--
*/
// --><div style="border:1px dashed green;margin:1em;padding:1em;"><source lang=javascript>
//<pre><nowiki>
function MoveResizeAbsolute_NavIsIE(){
var agt=navigator.userAgent.toLowerCase();
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
return is_ie;
}
//</nowiki></pre></source></div><!--
/*
-->
=== FUNKSIONI : gjerësia e ekranit ===
* Rregullon gjerësinë e ekranit (në piksël)
<!--
*/
// --><div style="border:1px dashed green;margin:1em;padding:1em;"><source lang=javascript>
//<pre><nowiki>
function MoveResizeAbsolute_GetScreenWidth(){
if(MoveResizeAbsolute_NavIsIE()){
var ScreenWidth = parseInt(screen.width);
}else{
var ScreenWidth = parseInt(window.innerWidth);
}
return ScreenWidth;
}
//</nowiki></pre></source></div><!--
/*
-->
=== FUNKSIONI : naltësia e ekranit ===
* Rregullon naltësinë e ekranit (në piksël)
<!--
*/
//--><div style="border:1px dashed green;margin:1em;padding:1em;"><source lang=javascript>
//<pre><nowiki>
function MoveResizeAbsolute_GetScreenHeight(){
if(MoveResizeAbsolute_NavIsIE()){
var ScreenHeight = parseInt(screen.height);
}else{
var ScreenHeight = parseInt(window.innerHeight);
}
return ScreenHeight;
}
//</nowiki></pre></source></div><!--
/*
-->
=== FUNKSIONI : MOVE ===
Transformon një element në spirancë për të lëvizur një tjetër element (pozicioni është i caktuar)
* elementArea = elementi spirancë (i detyrueshëm)
* elementsToMove = elemente për tu lëvizur (i detyrueshëm)
* LeftLimit = kufia majtas, në piksël (fakultativ)
* TopLimit = kufia lartë, në piksël (fakultativ)
<!--
*/
//--><div style="border:1px dashed green;margin:1em;padding:1em;"><source lang=javascript>
//<pre><nowiki>
function MoveResizeAbsolute_AddMoveArea(elementArea, elementsToMove, LeftLimit, TopLimit){
if((!elementArea)||(!elementsToMove)) return;
elementArea.onmousedown=function(event) {
var monbody = document.body;
if(!event) { event = window.event; }
if(MoveResizeAbsolute_NavIsIE()){
positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
}else{
positionSouris_X = parseInt( event.pageX );
positionSouris_Y = parseInt( event.pageY );
}
for(var a=0;a<elementsToMove.length;a++){
elementsToMove[a].initialX = parseInt( positionSouris_X - elementsToMove[a].offsetLeft);
elementsToMove[a].initialY = parseInt( positionSouris_Y - elementsToMove[a].offsetTop);
elementsToMove[a].style.opacity = '.8';
}
monbody.onmousemove = function(event) {
if(!event) { event = window.event; }
if(MoveResizeAbsolute_NavIsIE()){
positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
}else{
positionSouris_X = parseInt( event.pageX );
positionSouris_Y = parseInt( event.pageY );
}
var LeftLimitDone = false;
var TopLimitDone = false;
for(var a=0;a<elementsToMove.length;a++){
PositionGauche = parseInt( positionSouris_X ) - elementsToMove[a].initialX;
PositionHaut = parseInt(positionSouris_Y ) - elementsToMove[a].initialY;
if(LeftLimit){
if(LeftLimit[a]|| LeftLimit[a]==0){
if( PositionGauche < parseInt(LeftLimit[a])){
PositionGauche = LeftLimit[a];
LeftLimitDone = true;
}
}
}
if(TopLimit){
if(TopLimit[a]||TopLimit[a]==0){
if( PositionHaut < parseInt(TopLimit[a])){
PositionHaut = parseInt(TopLimit[a]);
TopLimitDone = true;
}
}
}
elementsToMove[a].style.left = PositionGauche + 'px';
elementsToMove[a].style.top = PositionHaut + 'px';
}
if(LeftLimitDone){
for(var a=0;a<elementsToMove.length;a++){
if(LeftLimit[a]) elementsToMove[a].style.left = LeftLimit[a] + 'px';
}
LeftLimitDone = false;
}
if(TopLimitDone){
for(var a=0;a<elementsToMove.length;a++){
if(TopLimit[a]) elementsToMove[a].style.top = TopLimit[a] + 'px';
}
TopLimitDone = false;
}
}
monbody.onmouseup=function(event) {
for(var a=0;a<elementsToMove.length;a++){
elementsToMove[a].style.opacity = '';
}
monbody.onmousemove = null;
monbody.onmouseup = null;
}
}
elementArea.style.cursor = "move";
}
//</nowiki></pre></source></div><!--
/*
-->
=== FUNKSIONI : RESIZE ===
Transformon një element në spirancë për të ndryshuar një tjetër element (pozicioni është i caktuar)
* elementArea = elementi spirancë (i detyrueshëm)
* elementsToResize = elemente për tu ndryshuar (i detyrueshëm, në një Array (shqip: Rregullimi i elementeve të ngjashme në një mënyrë të caktuar.))
* MinWidth = gjerësia minimale, në piksël (fakultativ)
* MinHeight = lartësia minimale, në piksël (fakultativ)
<!--
*/
//--><div style="border:1px dashed green;margin:1em;padding:1em;"><source lang=javascript>
//<pre><nowiki>
function MoveResizeAbsolute_AddResizeArea(elementArea, elementsToResize, MinWidth, MinHeight){
if((!elementArea)||(!elementsToResize)) return;
elementArea.onmousedown = function(event){
var monbody = document.body;
if(!event) { event = window.event; }
if(MoveResizeAbsolute_NavIsIE()){
positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
}else{
positionSouris_X = parseInt( event.pageX );
positionSouris_Y = parseInt( event.pageY );
}
for(var a=0;a<elementsToResize.length;a++){
elementsToResize[a].initialWidth = parseInt( positionSouris_X - elementsToResize[a].offsetWidth );
elementsToResize[a].initialHeight = parseInt( positionSouris_Y - elementsToResize[a].offsetHeight );
elementsToResize[a].style.opacity = '.8';
}
monbody.onmousemove=function(event) {
if(!event) { event = window.event; }
if(MoveResizeAbsolute_NavIsIE()){
positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
}else{
positionSouris_X = parseInt( event.pageX );
positionSouris_Y = parseInt( event.pageY );
}
var MinWidthDone = false;
var MinHeightDone = false;
for(var a=0;a<elementsToResize.length;a++){
var NewWidth = parseInt( positionSouris_X - elementsToResize[a].initialWidth );
var NewHeight = parseInt( positionSouris_Y - elementsToResize[a].initialHeight );
if(MinWidth){
if(MinWidth[a] || MinWidth[a]==0){
if(NewWidth<parseInt(MinWidth[a])){
NewWidth = MinWidth[a];
MinWidthDone = true;
}
}
}
if(MinHeight){
if(MinHeight[a] || MinHeight[a]==0){
if(NewHeight<parseInt(MinHeight[a])){
NewHeight = MinHeight[a];
MinHeightDone = true;
}
}
}
elementsToResize[a].style.width = NewWidth + 'px';
elementsToResize[a].style.height = NewHeight + 'px';
}
if(MinWidthDone){
for(var a=0;a<elementsToResize.length;a++){
if(MinWidth[a]) elementsToResize[a].style.width = MinWidth[a] + 'px';
}
}
if(MinHeightDone){
for(var a=0;a<elementsToResize.length;a++){
if(MinHeight[a]) elementsToResize[a].style.height = MinHeight[a] + 'px';
}
}
}
monbody.onmouseup=function(event) {
for(var a=0;a<elementsToResize.length;a++){
elementsToResize[a].style.opacity = '';
}
monbody.onmousemove = null;
monbody.onmouseup = null;
}
}
elementArea.style.cursor = "se-resize";
}
//</nowiki></pre></source></div>