O'Reilly logo

Developing Web Components by Jason Strimpel, Jarrod Overson

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 8. Resizing Elements

Oftentimes in web applications you will see a drag handle, which is used to adjust the size of an element. This may be done to improve usability, or to support some functionality. For instance, the developer might make an element resizable to allow users to alter the line wrapping of text inside the element, to make it easier to read. A functional application could be for a matrix of elements that needs to be resized. In this chapter we will create a widget that can be used to make any element resizable. We will then integrate this widget into the dialog widget, so that dialog instances can optionally be made resizable.

Mouse Events and Best Practices (Recap)

The same mouse events and best practices described in Chapter 7 apply when resizing an element. If you are jumping around the book and did not read the previous chapter, you’ll find a brief synopsis of the mouse events and best practices here (although I’d advise reading the previous chapter before going further!)

Events

jQuery supports eleven different mouse events. However, making an element draggable only requires understanding three of these events:

  • $.mousemove is used to get the mouse coordinates. jQuery normalizes these in the event object as the properties e.pageX and e.pageY.

  • $.mousedown is used to bind the $.mousemove handler and get the initial mouse coordinates.

  • $.mouseup is used to unbind the $mousemove handler to prevent excessive $mousemove events from being ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required