Mercurial > hg > digilib-old
comparison client/digitallibrary/jquery/jquery.digilib.js @ 711:eab17859be79 jquery
improved button positioning
author | robcast |
---|---|
date | Sun, 30 Jan 2011 16:37:05 +0100 |
parents | d533bdf0e64e |
children | 823f0050f7eb c1fa722c570e |
comparison
equal
deleted
inserted
replaced
710:d533bdf0e64e | 711:eab17859be79 |
---|---|
729 }; | 729 }; |
730 // visible button sets | 730 // visible button sets |
731 if (opts.buttons != null) { | 731 if (opts.buttons != null) { |
732 settings.visibleButtonSets = opts.buttons; | 732 settings.visibleButtonSets = opts.buttons; |
733 }; | 733 }; |
734 } | 734 }; |
735 | 735 |
736 // clear digilib data for reset | 736 // clear digilib data for reset |
737 var resetData = function (data) { | 737 var resetData = function (data) { |
738 if (data.zoomArea) delete data.zoomArea; | 738 if (data.zoomArea) delete data.zoomArea; |
739 if (data.marks) delete data.marks; | 739 if (data.marks) delete data.marks; |
949 return isVisible; | 949 return isVisible; |
950 }; | 950 }; |
951 | 951 |
952 // display more (or less) button sets | 952 // display more (or less) button sets |
953 var showButtons = function (data, more, setIdx, animated) { | 953 var showButtons = function (data, more, setIdx, animated) { |
954 var atime = animated ? 'fast': 0; | |
954 if (more) { | 955 if (more) { |
955 // add set | 956 // add set |
956 var $otherSets = data.$elem.find('div.buttons:visible'); | 957 var $otherSets = data.$elem.find('div.buttons:visible'); |
957 var $set; | 958 var $set; |
958 if (data.$buttonSets && data.$buttonSets[setIdx]) { | 959 if (data.$buttonSets && data.$buttonSets[setIdx]) { |
962 $set = createButtons(data, setIdx); | 963 $set = createButtons(data, setIdx); |
963 }; | 964 }; |
964 if ($set == null) return false; | 965 if ($set == null) return false; |
965 var btnWidth = $set.width(); | 966 var btnWidth = $set.width(); |
966 // move remaining sets left and show new set | 967 // move remaining sets left and show new set |
967 if (animated) { | 968 if ($otherSets.length > 0) { |
968 $otherSets.animate({left : '-='+btnWidth+'px'}, 'fast', | 969 $otherSets.animate({right : '+='+btnWidth+'px'}, atime, |
969 function () {$set.show();}); | 970 function () {$set.show();}); |
970 } else { | 971 } else { |
971 var oldpos = $otherSets.position(); | |
972 if (oldpos) { | |
973 $otherSets.css({left : oldpos.left-btnWidth+'px'}); | |
974 }; | |
975 $set.show(); | 972 $set.show(); |
976 }; | 973 } |
977 } else { | 974 } else { |
978 // remove set | 975 // remove set |
979 var $set = data.$buttonSets[setIdx]; | 976 var $set = data.$buttonSets[setIdx]; |
980 if ($set == null) return false; | 977 if ($set == null) return false; |
981 var btnWidth = $set.width(); | 978 var btnWidth = $set.width(); |
982 // hide last set | 979 // hide last set |
983 $set.hide(); | 980 $set.hide(); |
984 // take remaining sets and move right | 981 // take remaining sets and move right |
985 var $otherSets = data.$elem.find('div.buttons:visible'); | 982 var $otherSets = data.$elem.find('div.buttons:visible'); |
986 if (animated) { | 983 $otherSets.animate({right : '-='+btnWidth+'px'}, atime); |
987 $otherSets.animate({left : '+='+btnWidth+'px'}, 'fast'); | 984 } |
988 } else { | |
989 $otherSets.css({left : '+='+btnWidth+'px'}); | |
990 }; | |
991 }; | |
992 return true; | 985 return true; |
993 }; | 986 }; |
994 | 987 |
995 // create Transform from area and $img | 988 // create Transform from area and $img |
996 var getImgTrafo = function ($img, area, rot, hmir, vmir) { | 989 var getImgTrafo = function ($img, area, rot, hmir, vmir) { |
1317 'cursor' : 'default' | 1310 'cursor' : 'default' |
1318 }); | 1311 }); |
1319 $(document).unbind("mousemove.digilib", dragMove); | 1312 $(document).unbind("mousemove.digilib", dragMove); |
1320 $(document).unbind("mouseup.digilib", dragEnd); | 1313 $(document).unbind("mouseup.digilib", dragEnd); |
1321 // calculate relative offset | 1314 // calculate relative offset |
1322 if (dx == 0 && dy == 0) return false // no movement | 1315 if (dx == 0 && dy == 0) return false; // no movement |
1323 // reload with scaler image showing the new ausschnitt | 1316 // reload with scaler image showing the new ausschnitt |
1324 // digilib.moveBy(x, y); | 1317 // digilib.moveBy(x, y); |
1325 var pos = geom.position(-dx, -dy); | 1318 var pos = geom.position(-dx, -dy); |
1326 var newPos = data.imgTrafo.invtransform(pos); | 1319 var newPos = data.imgTrafo.invtransform(pos); |
1327 var newArea = data.zoomArea.setPt1(newPos); | 1320 var newArea = data.zoomArea.setPt1(newPos); |