|
0
|
1 |
|
|
|
2 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
|
|
3 |
<html> |
|
|
4 |
<head> |
|
|
5 |
<title>YUI Library Examples: ImageLoader: Using ImageLoader with CSS Class Names</title> |
|
|
6 |
<meta http-equiv="content-type" content="text/html; charset=utf-8"> |
|
|
7 |
<link rel="stylesheet" type="text/css" href="../../assets/yui.css" > |
|
|
8 |
|
|
|
9 |
<style> |
|
|
10 |
/*Supplemental CSS for the YUI distribution*/ |
|
|
11 |
#custom-doc { width: 95%; min-width: 950px; } |
|
|
12 |
#pagetitle {background-image: url(../../assets/bg_hd.gif);} |
|
|
13 |
/* #pagetitle h1 {background-image: url(../../assets/title_h_bg.gif);}*/ |
|
|
14 |
</style> |
|
|
15 |
|
|
|
16 |
<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css"> |
|
|
17 |
|
|
|
18 |
<!--there is no custom header content for this example--> |
|
|
19 |
|
|
|
20 |
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" /> |
|
|
21 |
<script type="text/javascript" src="../../build/yui/yui-debug.js"></script> |
|
|
22 |
|
|
|
23 |
</head> |
|
|
24 |
<body id="yahoo-com" class=" yui-skin-sam"> |
|
|
25 |
<div id="custom-doc" class="yui-t2"> |
|
|
26 |
<div id="hd"> |
|
|
27 |
<div id="ygunav"> |
|
|
28 |
<p> |
|
|
29 |
<em> |
|
|
30 |
<a href="http://developer.yahoo.com/yui/3/">YUI 3.x Home</a> <i> - </i> |
|
|
31 |
</em> |
|
|
32 |
</p> |
|
|
33 |
<form action="http://search.yahoo.com/search" id="sitesearchform"> |
|
|
34 |
<input name="vs" type="hidden" value="developer.yahoo.com"> |
|
|
35 |
<input name="vs" type="hidden" value="yuiblog.com"> |
|
|
36 |
<div id="sitesearch"> |
|
|
37 |
<label for="searchinput">Site Search (YDN & YUIBlog): </label> |
|
|
38 |
<input type="text" id="searchinput" name="p"> |
|
|
39 |
<input type="submit" value="Search" id="searchsubmit" class="ygbt"> |
|
|
40 |
</div> |
|
|
41 |
</form> |
|
|
42 |
</div> |
|
|
43 |
<div id="ygma"><a href="../../"><img src="../../assets/logo.gif" border="0" width="200" height="93"></a></div> |
|
|
44 |
<div id="pagetitle"><h1>YUI Library Examples: ImageLoader: Using ImageLoader with CSS Class Names</h1></div> |
|
|
45 |
</div> |
|
|
46 |
<div id="bd"> |
|
|
47 |
|
|
|
48 |
<div id="bar-note"><p><strong>Note:</strong> This is YUI 3.x. Looking for <a href="http://developer.yahoo.com/yui/">YUI 2.x</a>?</p></div> |
|
|
49 |
|
|
|
50 |
<div id="yui-main"> |
|
|
51 |
<div class="yui-b"> |
|
|
52 |
<div class="yui-ge"> |
|
|
53 |
<div class="yui-u first example" id="main"> |
|
|
54 |
|
|
|
55 |
<h2>ImageLoader: Using ImageLoader with CSS Class Names</h2> |
|
|
56 |
|
|
|
57 |
<div id="example" class="promo"> |
|
|
58 |
<p> |
|
|
59 |
<p>The <a href="http://developer.yahoo.com/yui/imageloader/">ImageLoader Utility</a> allows you an alternate method of using CSS class names to load images.</p> |
|
|
60 |
|
|
|
61 |
<p>Hover over each image to show its triggers and limit. Try tripping the triggers to see the load reactions. Refresh the page to reset the images.</p> |
|
|
62 |
|
|
|
63 |
</p> |
|
|
64 |
|
|
|
65 |
<div class="module example-container "> |
|
|
66 |
<div class="hd exampleHd"> |
|
|
67 |
<p class="newWindowButton yui-skin-sam"> |
|
|
68 |
<a href="imageloader-class_clean.html" target="_blank">View example in new window.</a> |
|
|
69 |
</p> |
|
|
70 |
</div> <div id="example-canvas" class="bd"> |
|
|
71 |
|
|
|
72 |
|
|
|
73 |
<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== --> |
|
|
74 |
|
|
|
75 |
<style> |
|
|
76 |
|
|
|
77 |
.everything { position:relative; height:420px; } |
|
|
78 |
.everything div { border:1px solid #888; } |
|
|
79 |
.topmain { position:absolute; top:10px; left:120px; height:75px; width:100px; } |
|
|
80 |
.duo1 { position:absolute; top:130px; left:20px; height:67px; width:100px; } |
|
|
81 |
.duo2 { position:absolute; top:130px; left:220px; height:53px; width:100px; } |
|
|
82 |
.scroll { position:absolute; top:320px; left:120px; height:72px; width:100px; } |
|
|
83 |
|
|
|
84 |
.yui-imgload-maingroup, |
|
|
85 |
.yui-imgload-duogroup, |
|
|
86 |
.yui-imgload-scrollgroup |
|
|
87 |
{ background:none !important; } |
|
|
88 |
|
|
|
89 |
</style> |
|
|
90 |
|
|
|
91 |
|
|
|
92 |
<div class='everything' id='everything'> |
|
|
93 |
<div class='topmain yui-imgload-maingroup' id='topmain' style='background-image:url("http://developer.yahoo.com/yui/docs/assets/examples/exampleimages/small/museum.jpg");' title='group 1; mouseover image; 2 sec limit'></div> |
|
|
94 |
<div class='duo1 yui-imgload-duogroup' id='duo1' style='background-image:url("http://developer.yahoo.com/yui/docs/assets/examples/exampleimages/small/uluru.jpg");' title='group 2; mouseover left image, or click on right image; 4 sec limit'></div> |
|
|
95 |
<div class='duo2 yui-imgload-duogroup' id='duo2' style='background-image:url("http://developer.yahoo.com/yui/docs/assets/examples/exampleimages/small/katatjuta.jpg");' title='group 2; mouseover left image, or click on right image; 4 sec limit'></div> |
|
|
96 |
<div class='scroll' title='group 3; scroll; no time limit'> |
|
|
97 |
<img id='scrollImg' class='yui-imgload-scrollgroup' style='background-image:url("http://developer.yahoo.com/yui/docs/assets/examples/exampleimages/small/morraine.jpg");' src='http://l.yimg.com/a/i/us/tr/b/1px_trans.gif' width='100' height='72' /> |
|
|
98 |
</div> |
|
|
99 |
</div> |
|
|
100 |
|
|
|
101 |
|
|
|
102 |
<script> |
|
|
103 |
|
|
|
104 |
YUI({base:"../../build/", timeout: 10000, filter:"debug", logInclude: {imageloader:true, example:true}}).use("imageloader", function(Y) { |
|
|
105 |
|
|
|
106 |
var mainGroup = new Y.ImgLoadGroup({ name: 'group 1', timeLimit: 2, className: 'yui-imgload-maingroup' }); |
|
|
107 |
mainGroup.addTrigger('#topmain', 'mouseover'); |
|
|
108 |
|
|
|
109 |
var duoGroup = new Y.ImgLoadGroup({ name: 'group 2', timeLimit: 4, className: 'yui-imgload-duogroup' }); |
|
|
110 |
duoGroup.addTrigger('#duo1', 'mouseover').addTrigger('#duo2', 'click'); |
|
|
111 |
|
|
|
112 |
var scrollGroup = new Y.ImgLoadGroup({ name: 'group 3', className: 'yui-imgload-scrollgroup' }); |
|
|
113 |
scrollGroup.addTrigger(window, 'scroll'); |
|
|
114 |
|
|
|
115 |
}); |
|
|
116 |
|
|
|
117 |
</script> |
|
|
118 |
|
|
|
119 |
<!--END SOURCE CODE FOR EXAMPLE =============================== --> |
|
|
120 |
|
|
|
121 |
|
|
|
122 |
</div> |
|
|
123 |
</div> |
|
|
124 |
</div> |
|
|
125 |
|
|
|
126 |
<h2 class='first'>Using CSS Class Names to Load Images</h2> |
|
|
127 |
|
|
|
128 |
<p>Look familiar? These are the same images and triggers as the Basic Features example (with the weather image omitted). The only difference is the manner in which we're loading the images on the back end.</p> |
|
|
129 |
|
|
|
130 |
<p>Insead of registering specific image ids/URLs with a group, you can simply tag the group with a CSS class. The group will later use this class name to identify which DOM elements belong to the group. Each group should have one corresponding class. Each class must have a <code>background:none</code> CSS definition at the top of the page, as in this example:</p> |
|
|
131 |
|
|
|
132 |
<textarea name='code' class='HTML' cols='60' rows='1'> |
|
|
133 |
.yui-imgload-maingroup, |
|
|
134 |
.yui-imgload-duogroup, |
|
|
135 |
.yui-imgload-scrollgroup |
|
|
136 |
{ background:none !important; } |
|
|
137 |
</textarea> |
|
|
138 |
|
|
|
139 |
<p>Here is the HTML for the images:</p> |
|
|
140 |
|
|
|
141 |
<textarea name='code' class='HTML' cols='60' rows='1'> |
|
|
142 |
<div class='topmain yui-imgload-maingroup' id='topmain' style='background-image:url("http://developer.yahoo.com/yui/docs/assets/examples/exampleimages/small/museum.jpg");'></div> |
|
|
143 |
<div class='duo1 yui-imgload-duogroup' id='duo1' style='background-image:url("http://developer.yahoo.com/yui/docs/assets/examples/exampleimages/small/uluru.jpg");'></div> |
|
|
144 |
<div class='duo2 yui-imgload-duogroup' id='duo2' style='background-image:url("http://developer.yahoo.com/yui/docs/assets/examples/exampleimages/small/katatjuta.jpg");'></div> |
|
|
145 |
<div class='scroll'> |
|
|
146 |
<img id='scrollImg' class='yui-imgload-scrollgroup' style='background-image:url("http://developer.yahoo.com/yui/docs/assets/examples/exampleimages/small/morraine.jpg");' src='http://l.yimg.com/a/i/us/tr/b/1px_trans.gif' width='100' height='72' /> |
|
|
147 |
</div> |
|
|
148 |
</textarea> |
|
|
149 |
|
|
|
150 |
<p>A few things to note. First, the images have class names matching those in the style definitions above.</p> |
|
|
151 |
|
|
|
152 |
<p>Second, the image URL is set in the <code>background-image</code> of the elements. The <code>background:none</code> defined earlier in the CSS will be removed by the ImageLoader Utility JavaScript when the images are eventually loaded.</p> |
|
|
153 |
|
|
|
154 |
<p>Third, since the <code><img></code> element displays its images through the <code>background-image</code>, its size won't change when the image is loaded. Therefore the <code>width</code>/<code>height</code> needs to be set in the HTML. And since that gives the image a substantial size, the browsers would show a missing-image icon if the <code>src</code> attribute were not specified. Therefore we need to set one; a transparent one so that the background image will show through.</p> |
|
|
155 |
|
|
|
156 |
<p>This brings up an important limitation with this approach: you cannot alter the natural size of the image. Because the image is displayed as a background image, the browser will not resize the image according to the <code>width</code>/<code>height</code> of the <code><img></code> element.</p> |
|
|
157 |
|
|
|
158 |
<p>Now let's turn to the JavaScript. Since the image URLs are already specified in the HTML, we don't need them in the JS. All each group needs to know is the CSS class name that will identify the images.</p> |
|
|
159 |
|
|
|
160 |
<textarea name='code' class='JScript' cols='60' rows='1'> |
|
|
161 |
var mainGroup = new Y.ImgLoadGroup({ name: 'group 1', timeLimit: 2, className: 'yui-imgload-maingroup' }); |
|
|
162 |
mainGroup.addTrigger('#topmain', 'mouseover'); |
|
|
163 |
|
|
|
164 |
var duoGroup = new Y.ImgLoadGroup({ name: 'group 2', timeLimit: 4, className: 'yui-imgload-duogroup' }); |
|
|
165 |
duoGroup.addTrigger('#duo1', 'mouseover').addTrigger('#duo2', 'click'); |
|
|
166 |
|
|
|
167 |
var scrollGroup = new Y.ImgLoadGroup({ name: 'group 3', className: 'yui-imgload-scrollgroup' }); |
|
|
168 |
scrollGroup.addTrigger(window, 'scroll'); |
|
|
169 |
</textarea> |
|
|
170 |
|
|
|
171 |
<p>Note that you are free to combine this class-name approach with the other. The same group can have some images identified by class name and others by registering ids/URLs.</p> |
|
|
172 |
</div> |
|
|
173 |
<div class="yui-u sidebar"> |
|
|
174 |
|
|
|
175 |
|
|
|
176 |
<div id="examples" class="mod box4"> |
|
|
177 |
<div class="hd"> |
|
|
178 |
<h4> |
|
|
179 |
ImageLoader Examples:</h4> |
|
|
180 |
</div> |
|
|
181 |
<div class="bd"> |
|
|
182 |
<ul> |
|
|
183 |
<li><a href='../imageloader/imageloader-basics.html'>Basic Features of the ImageLoader Utility</a></li><li><a href='../imageloader/imageloader-fold.html'>Loading Images Below the Fold</a></li><li class='selected'><a href='../imageloader/imageloader-class.html'>Using ImageLoader with CSS Class Names</a></li> </ul> |
|
|
184 |
</div> |
|
|
185 |
</div> |
|
|
186 |
|
|
|
187 |
<div class="mod box4"> |
|
|
188 |
<div class="hd"> |
|
|
189 |
<h4>More ImageLoader Resources:</h4> |
|
|
190 |
</div> |
|
|
191 |
<div class="bd"> |
|
|
192 |
<ul> |
|
|
193 |
<!-- <li><a href="http://developer.yahoo.com/yui/imageloader/">User's Guide</a> (external)</li> --> |
|
|
194 |
<li><a href="../../api/module_imageloader.html">API Documentation</a></li> |
|
|
195 |
</ul> |
|
|
196 |
</div> |
|
|
197 |
</div> |
|
|
198 |
</div> |
|
|
199 |
</div> |
|
|
200 |
|
|
|
201 |
</div> |
|
|
202 |
</div> |
|
|
203 |
|
|
|
204 |
|
|
|
205 |
<div class="yui-b toc3" id="tocWrapper"> |
|
|
206 |
<!-- TABLE OF CONTENTS --> |
|
|
207 |
<div id="toc"> |
|
|
208 |
|
|
|
209 |
<ul> |
|
|
210 |
<li class="sect first">YUI 3.x Project</li><li class="item"><a title="The Yahoo! User Interface (YUI) Library, 3.x Branch, " href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site (external)</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">YUI 3 Examples</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../api/">YUI 3 API Docs</a></li><li class="item"><a title="The YUI Library can be downloaded from SourceForge" href="http://sourceforge.net/projects/yui/">YUI 3 on Sourceforge (external)</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/3/license.html">YUI License (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI (Global Prerequisite) - Functional Examples" href="../../examples/yui/index.html">YUI (Global Prerequisite)</a></li><li class="item"><a title="Event - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="Node - Functional Examples" href="../../examples/node/index.html">Node</a></li><li class="sect">YUI 3 Component Infrastructure - Examples</li><li class="item"><a title="Attribute - Functional Examples" href="../../examples/attribute/index.html">Attribute</a></li><li class="item"><a title="Plugin - Functional Examples" href="../../examples/plugin/index.html">Plugin</a></li><li class="item"><a title="Widget - Functional Examples" href="../../examples/widget/index.html">Widget</a></li><li class="sect">YUI 3 Utilities - Examples</li><li class="item"><a title="Animation - Functional Examples" href="../../examples/anim/index.html">Animation</a></li><li class="item"><a title="Cache - Functional Examples" href="../../examples/cache/index.html">Cache</a></li><li class="item"><a title="Cookie - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="DataSchema - Functional Examples" href="../../examples/dataschema/index.html">DataSchema</a></li><li class="item"><a title="DataSource - Functional Examples" href="../../examples/datasource/index.html">DataSource</a></li><li class="item"><a title="DataType - Functional Examples" href="../../examples/datatype/index.html">DataType</a></li><li class="item"><a title="Drag & Drop - Functional Examples" href="../../examples/dd/index.html">Drag & Drop</a></li><li class="item"><a title="Get - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="History - Functional Examples" href="../../examples/history/index.html">History</a></li><li class="selected "><a title="ImageLoader - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="IO - Functional Examples" href="../../examples/io/index.html">IO</a></li><li class="item"><a title="JSON (JavaScript Object Notation) - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="Queue - Functional Examples" href="../../examples/queue/index.html">Queue</a></li><li class="item"><a title="Stylesheet - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="sect">YUI 3 Widgets - Examples</li><li class="item"><a title="Overlay - Functional Examples" href="../../examples/overlay/index.html">Overlay</a></li><li class="item"><a title="Slider - Functional Examples" href="../../examples/slider/index.html">Slider</a></li><li class="sect">YUI 3 Node Plugins - Examples</li><li class="item"><a title="FocusManager Node Plugin - Functional Examples" href="../../examples/node-focusmanager/index.html">FocusManager Node Plugin</a></li><li class="item"><a title="MenuNav Node Plugin - Functional Examples" href="../../examples/node-menunav/index.html">MenuNav Node Plugin</a></li><li class="sect">YUI 3 CSS - Examples</li><li class="item"><a title="YUI CSS Reset - Functional Examples" href="../../examples/cssreset/index.html">CSS Reset</a></li><li class="item"><a title="YUI Fonts - Functional Examples" href="../../examples/cssfonts/index.html">CSS Fonts</a></li><li class="item"><a title="YUI Base - Functional Examples" href="../../examples/cssbase/index.html">CSS Base</a></li><li class="sect">YUI 3 Developer Tools - Examples</li><li class="item"><a title="Console - Functional Examples" href="../../examples/console/index.html">Console</a></li><li class="item"><a title="Profiler - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="Test - Functional Examples" href="../../examples/test/index.html">Test</a></li><li class="sect">The YUI Community</li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="item"><a title="The Yahoo! Group YDN-JavaScript hosts the YUI community forum" href="http://tech.groups.yahoo.com/group/ydn-javascript/">YUI Forum (external)</a></li><li class="item"><a title="The Yahoo! Group yui3 is dedicated to the 3.x branch of the Yahoo! User Interface (YUI) Library." href="http://tech.groups.yahoo.com/group/yui3/">YUI 3 Forum (external)</a></li><li class="item"><a title="YUI is used by Yahoo! and by hundreds of other sites, including many you know and love." href="/yui/poweredby/">YUI Sightings (external)</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li><li class="sect">YUI Articles on the YUI Website</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Reporting Bugs and Making Feature Requests for YUI Components" href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests (external)</a></li><li class="item"><a title="Serve YUI source files from Yahoo! -- free, fast, and simple" href="http://developer.yahoo.com/yui/3/articles/hosting/">Serving YUI Files from Yahoo! (external)</a></li></ul> |
|
|
211 |
</div> |
|
|
212 |
</div> |
|
|
213 |
</div><!--closes bd--> |
|
|
214 |
|
|
|
215 |
<div id="ft"> |
|
|
216 |
<p class="first">Copyright © 2009 Yahoo! Inc. All rights reserved.</p> |
|
|
217 |
<p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - |
|
|
218 |
<a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - |
|
|
219 |
<a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - |
|
|
220 |
<a href="http://careers.yahoo.com/">Job Openings</a></p> |
|
|
221 |
</div> |
|
|
222 |
</div> |
|
|
223 |
<script src="../../assets/dpSyntaxHighlighter.js"></script> |
|
|
224 |
<script language="javascript"> |
|
|
225 |
dp.SyntaxHighlighter.HighlightAll('code'); |
|
|
226 |
</script> |
|
|
227 |
</body> |
|
|
228 |
</html> |