1 | <!DOCTYPE html> |
---|
2 | <html lang="en"> |
---|
3 | <head> |
---|
4 | <meta charset="utf-8"> |
---|
5 | <title>jQuery UI Accordion - Open on hoverintent</title> |
---|
6 | <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css"> |
---|
7 | <script src="../../jquery-1.6.2.js"></script> |
---|
8 | <script src="../../ui/jquery.ui.core.js"></script> |
---|
9 | <script src="../../ui/jquery.ui.widget.js"></script> |
---|
10 | <script src="../../ui/jquery.ui.accordion.js"></script> |
---|
11 | <link rel="stylesheet" href="../demos.css"> |
---|
12 | <script> |
---|
13 | $(function() { |
---|
14 | $("#accordion").accordion({ |
---|
15 | event: "click hoverintent" |
---|
16 | }); |
---|
17 | }); |
---|
18 | |
---|
19 | var cfg = ($.hoverintent = { |
---|
20 | sensitivity: 7, |
---|
21 | interval: 100 |
---|
22 | }); |
---|
23 | |
---|
24 | $.event.special.hoverintent = { |
---|
25 | setup: function() { |
---|
26 | $( this ).bind( "mouseover", jQuery.event.special.hoverintent.handler ); |
---|
27 | }, |
---|
28 | teardown: function() { |
---|
29 | $( this ).unbind( "mouseover", jQuery.event.special.hoverintent.handler ); |
---|
30 | }, |
---|
31 | handler: function( event ) { |
---|
32 | event.type = "hoverintent"; |
---|
33 | var self = this, |
---|
34 | args = arguments, |
---|
35 | target = $( event.target ), |
---|
36 | cX, cY, pX, pY; |
---|
37 | |
---|
38 | function track( event ) { |
---|
39 | cX = event.pageX; |
---|
40 | cY = event.pageY; |
---|
41 | }; |
---|
42 | pX = event.pageX; |
---|
43 | pY = event.pageY; |
---|
44 | function clear() { |
---|
45 | target |
---|
46 | .unbind( "mousemove", track ) |
---|
47 | .unbind( "mouseout", arguments.callee ); |
---|
48 | clearTimeout( timeout ); |
---|
49 | } |
---|
50 | function handler() { |
---|
51 | if ( ( Math.abs( pX - cX ) + Math.abs( pY - cY ) ) < cfg.sensitivity ) { |
---|
52 | clear(); |
---|
53 | jQuery.event.handle.apply( self, args ); |
---|
54 | } else { |
---|
55 | pX = cX; |
---|
56 | pY = cY; |
---|
57 | timeout = setTimeout( handler, cfg.interval ); |
---|
58 | } |
---|
59 | } |
---|
60 | var timeout = setTimeout( handler, cfg.interval ); |
---|
61 | target.mousemove( track ).mouseout( clear ); |
---|
62 | return true; |
---|
63 | } |
---|
64 | }; |
---|
65 | </script> |
---|
66 | </head> |
---|
67 | <body> |
---|
68 | |
---|
69 | <div class="demo"> |
---|
70 | |
---|
71 | <div id="accordion"> |
---|
72 | <h3><a href="hoverintent.html#">Section 1</a></h3> |
---|
73 | <div> |
---|
74 | <p> |
---|
75 | Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer |
---|
76 | ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit |
---|
77 | amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut |
---|
78 | odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. |
---|
79 | </p> |
---|
80 | </div> |
---|
81 | <h3><a href="hoverintent.html#">Section 2</a></h3> |
---|
82 | <div> |
---|
83 | <p> |
---|
84 | Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet |
---|
85 | purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor |
---|
86 | velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In |
---|
87 | suscipit faucibus urna. |
---|
88 | </p> |
---|
89 | </div> |
---|
90 | <h3><a href="hoverintent.html#">Section 3</a></h3> |
---|
91 | <div> |
---|
92 | <p> |
---|
93 | Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. |
---|
94 | Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero |
---|
95 | ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis |
---|
96 | lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. |
---|
97 | </p> |
---|
98 | <ul> |
---|
99 | <li>List item one</li> |
---|
100 | <li>List item two</li> |
---|
101 | <li>List item three</li> |
---|
102 | </ul> |
---|
103 | </div> |
---|
104 | <h3><a href="hoverintent.html#">Section 4</a></h3> |
---|
105 | <div> |
---|
106 | <p> |
---|
107 | Cras dictum. Pellentesque habitant morbi tristique senectus et netus |
---|
108 | et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in |
---|
109 | faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia |
---|
110 | mauris vel est. |
---|
111 | </p> |
---|
112 | <p> |
---|
113 | Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. |
---|
114 | Class aptent taciti sociosqu ad litora torquent per conubia nostra, per |
---|
115 | inceptos himenaeos. |
---|
116 | </p> |
---|
117 | </div> |
---|
118 | </div> |
---|
119 | |
---|
120 | </div><!-- End demo --> |
---|
121 | |
---|
122 | <div class="demo-description"> |
---|
123 | <p> |
---|
124 | Click headers to expand/collapse content that is broken into logical sections, much like tabs. |
---|
125 | Optionally, toggle sections open/closed on mouseover. |
---|
126 | </p> |
---|
127 | <p> |
---|
128 | The underlying HTML markup is a series of headers (H3 tags) and content divs so the content is |
---|
129 | usable without JavaScript. |
---|
130 | </p> |
---|
131 | </div><!-- End demo-description --> |
---|
132 | |
---|
133 | </body> |
---|
134 | </html> |
---|