drag.html 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <link rel="stylesheet" href="../../../themes/themeroller/maemo5-theme/ui.all.css" type="text/css" media="screen" />
  5. <link rel="stylesheet" href="../../../themes/nokia/ext-theme/maemo5/800x480/custom.css" type="text/css" media="screen" />
  6. <script src="../../../lib/jquery/jquery.js" type="text/javascript" charset="utf-8"></script>
  7. <script src="../../../src/defaults.js" type="text/javascript" charset="utf-8"></script>
  8. <script src="../../../src/core.js" type="text/javascript" charset="utf-8"></script>
  9. <style type="text/css" media="screen">
  10. body {
  11. font-size: 14px;
  12. font-family: "Trebuchet MS", "Helvetica", "Arial", "Verdana", "sans-serif";
  13. }
  14. #drag {
  15. padding: 20px;
  16. position: absolute;
  17. top: 20px; left: 100px;
  18. cursor: move;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div id="drag" class="ui-widget-header ui-corner-all">Drag-me!</div>
  24. <script type="text/javascript" charset="utf-8">
  25. Nokia.use('widget', function() {
  26. (function() {
  27. Nokia.Drag = Nokia.Widget.extend({
  28. initialize: function(options) {
  29. var instance = this;
  30. var defaults = {
  31. element: ''
  32. };
  33. instance.options = jQuery.extend(defaults, options);
  34. instance._super.apply(instance, [instance.options]);
  35. var element = instance.options.element;
  36. instance.element = jQuery(element).css('position', 'absolute');
  37. instance._attachEvents();
  38. instance.registerVibrationOn(['create']);
  39. instance.fireCallback('create');
  40. },
  41. _attachEvents: function() {
  42. var instance = this;
  43. var element = instance.element;
  44. element.bind('mousedown', function(e) {
  45. instance.startCoord = {x: e.pageX, y: e.pageY};
  46. instance.doDrag = true;
  47. return false;
  48. });
  49. element.bind('mouseup', function() {
  50. instance.doDrag = false;
  51. return false;
  52. });
  53. jQuery(document).bind('mousemove', function(e) {
  54. instance._registerMouseDelta(e.clientX, e.clientY);
  55. return false;
  56. });
  57. },
  58. _registerMouseDelta: function(x, y) {
  59. var instance = this;
  60. var element = instance.element;
  61. var startCoord = instance.startCoord;
  62. if ( instance.doDrag ) {
  63. element.css({top: startCoord.y + (y - startCoord.y - 10) + 'px', left: startCoord.x + (x - startCoord.x - 10) + 'px' });
  64. }
  65. }
  66. });
  67. })();
  68. var drag = new Nokia.Drag({
  69. element: '#drag'
  70. });
  71. });
  72. </script>
  73. </body>
  74. </html>