ÐалеÑÐµÑ Ð¸Ð·Ð¾Ð±Ñажений
ТепеÑÑ, поÑле изÑÑÐµÐ½Ð¸Ñ Ð¾Ñнов JavaScript, Ð¼Ñ Ð¿ÑовеÑим ваÑи Ð·Ð½Ð°Ð½Ð¸Ñ Ñиклов, ÑÑнкÑий, ÑÑловнÑÑ Ð¾Ð¿ÐµÑаÑоÑов и ÑобÑÑий пÑедложив вам напиÑаÑÑ Ð¿Ð¾Ð¿ÑлÑÑнÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÐºÐ¾ÑоÑÑй Ð²Ñ ÑвидиÑе на Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑайÑÐ°Ñ - галеÑÐµÑ Ð½Ð° JavaScript.
| ÐÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñе знаниÑ: | ÐеÑед вÑполнением ÑÑого Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑоÑабоÑаÑÑ Ð²Ñе ÑÑаÑÑи в ÑÑом модÑле. |
|---|---|
| ЦелÑ: | ÐÑовеÑиÑÑ Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ Ñиклов, ÑÑнкÑий, ÑÑловнÑÑ Ð¾Ð¿ÐµÑаÑоÑов и ÑобÑÑий в JavaScript. |
ÐÑпÑÐ°Ð²Ð½Ð°Ñ ÑоÑка
ÐÐ»Ñ Ð½Ð°Ñала ÑкаÑайÑе ZIP Ñайл Ð´Ð»Ñ Ð¿ÑимеÑа и ÑаÑпакÑйÑе его ÑодеÑжимое Ñ ÑÐµÐ±Ñ Ð½Ð° компÑÑÑеÑе.
ÐÑ Ñакже можеÑе иÑполÑзоваÑÑ Ñакие ÑайÑÑ ÐºÐ°Ðº CodePen, JSFiddle или Glitch Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑкопиÑоваÑÑ HTML, CSS и JavaScript в один из ÑÑиÑ
ÑедакÑоÑов. ÐÑли онлайн ÑедакÑоÑ, коÑоÑÑй Ð²Ñ Ð²ÑбÑали, не Ð¸Ð¼ÐµÐµÑ Ð¾ÑделÑнÑÑ
панелей Ð´Ð»Ñ JavaScript/CSS, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе вÑÑÑавиÑÑ ÐºÐ¾Ð´ в Ñеги <script>/<style> ÑаÑположеннÑе на Ñамой HTML ÑÑÑаниÑе.
ÐÐ±Ð·Ð¾Ñ Ð¿ÑоекÑа
РпÑимеÑе Ð²Ñ ÑвидиÑе неÑколÑко Ñайлов HTML, CSS и изобÑажений и неÑколÑко ÑÑÑок JavaScript-кода. Ðам нÑжно напиÑаÑÑ Ð½ÐµÐ´Ð¾ÑÑаÑÑий JavaScript-код Ð´Ð»Ñ Ñого ÑÑÐ¾Ð±Ñ Ð³Ð°Ð»ÐµÑÐµÑ Ð·Ð°ÑабоÑала. ÐаÑÐºÐ°Ñ HTML ÑÑÑаниÑÑ Ð²ÑглÑÐ´Ð¸Ñ Ñак:
<h1>ÐÑÐ¸Ð¼ÐµÑ ÑоÑогалеÑеи</h1>
<div class="full-img">
<img class="displayed-img" src="images/pic1.jpg" />
<div class="overlay"></div>
<button class="dark">Темнее</button>
</div>
<div class="thumb-bar"></div>
РезÑлÑÑÐ°Ñ Ð²ÑглÑÐ´Ð¸Ñ ÑледÑÑÑим обÑазом:

Ðаиболее инÑеÑеÑнÑе ÑаÑÑи CSS Ñайла из пÑимеÑа:
- ÐбÑолÑÑно позиÑиониÑÐ¾Ð²Ð°Ð½Ñ ÑÑи ÑлеменÑа внÑÑÑи
<div class="full-img">:<img>, в коÑоÑом оÑобÑажаеÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑазмеÑное изобÑажение, пÑÑÑой<div class="overlay">, ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ¾ÑоÑого Ð¸Ð¼ÐµÐµÑ ÑÐ¾Ñ Ð¶Ðµ ÑазмеÑ, ÑÑо и<img>помеÑаеÑÑÑ Ð¿ÑÑмо над пÑедÑдÑÑим div-ом (ÑÑо иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð½Ð°Ð½ÐµÑÐµÐ½Ð¸Ñ ÑÑÑекÑа заÑÐµÐ¼Ð½ÐµÐ½Ð¸Ñ Ð½Ð° изобÑажение ÑеÑез полÑпÑозÑаÑнÑй ÑÐ²ÐµÑ Ñона) и<button>, коÑоÑÑй иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑÑекÑом заÑемнениÑ. - Ðадана ÑиÑина лÑбÑÑ
изобÑажений внÑÑÑи
<div class="thumb-bar">(Ñак назÑваемÑе «ÑменÑÑеннÑе изобÑажениÑ») до 20% и ÑазмеÑÐµÐ½Ñ Ñлева Ñак, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ Ñледовали дÑÑг за дÑÑгом на линии.
ÐÐ°Ñ JavaScript должен:
- ÐеÑебеÑиÑе вÑе изобÑажениÑ, и Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ вÑÑавÑÑе ÑлеменÑ
<img>внÑÑÑиthumb-bar <div>, коÑоÑÑй бÑÐ´ÐµÑ Ð²ÑÑавлÑÑÑ ÑÑо изобÑажение на ÑÑÑаниÑÑ. - ÐÑикÑепиÑе обÑабоÑÑик
onclickк каждомÑ<img>внÑÑÑиthumb-bar <div>, ÑÑÐ¾Ð±Ñ Ð¿Ñи нажаÑии на Ð½Ð¸Ñ ÑооÑвеÑÑÑвÑÑÑее изобÑажение оÑобÑажалоÑÑ Ð² ÑлеменÑеdisplay-img <img>. - ÐÑикÑепиÑе обÑабоÑÑик
onclickк кнопке<button>, ÑÑÐ¾Ð±Ñ Ð¿Ñи нажаÑии на Ð½ÐµÑ Ðº полноÑазмеÑÐ½Ð¾Ð¼Ñ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð±Ñл пÑименÑн ÑÑÑÐµÐºÑ Ð·Ð°ÑемнениÑ. ÐÑи повÑоÑном нажаÑии ÑÑÑÐµÐºÑ Ð·Ð°ÑÐµÐ¼Ð½ÐµÐ½Ð¸Ñ Ñнова ÑдалÑеÑÑÑ.
ЧÑÐ¾Ð±Ñ Ð»ÑÑÑе понÑÑÑ Ð¸Ð´ÐµÑ, поÑмоÑÑиÑе на гоÑовÑй пÑÐ¸Ð¼ÐµÑ (не заглÑдÑÐ²Ð°Ñ Ð² иÑÑ Ð¾Ð´Ð½Ñй код!).
ÐÑÐ°Ð¿Ñ Ð²ÑполнениÑ
Ð ÑледÑÑÑÐ¸Ñ ÑÐ°Ð·Ð´ÐµÐ»Ð°Ñ Ð¾Ð¿Ð¸ÑÑваеÑÑÑ, ÑÑо вам нÑжно делаÑÑ.
ÐаÑикливание изобÑажений
Ð Ñайле main.js Ñже пÑедоÑÑÐ°Ð²Ð»ÐµÐ½Ñ ÑÑÑоки, в коÑоÑÑÑ
Ñ
ÑаниÑÑÑ ÑÑÑлка на thumb-bar <div> внÑÑÑи пеÑеменной Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ thumbBar, ÑоздаÑÑ Ð½Ð¾Ð²Ñй ÑÐ»ÐµÐ¼ÐµÐ½Ñ <img>, ÑÑÑанавливаÑÑ ÐµÐ³Ð¾ аÑÑибÑÑ src на знаÑение placeholder xxx и добавлÑÑÑ ÑÑÐ¾Ñ Ð½Ð¾Ð²Ñй <img> ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð²Ð½ÑÑÑи thumbBar.
ÐÑжно ÑделаÑÑ:
- ÐомеÑÑиÑе Ñаздел кода под комменÑаÑием
/* Looping through images */внÑÑÑи Ñикла, коÑоÑÑй пеÑебиÑÐ°ÐµÑ Ð²Ñе 5 изобÑажений - вам пÑоÑÑо нÑжно пеÑебÑаÑÑ Ð¿ÑÑÑ ÑиÑел, каждое из коÑоÑÑÑ Ð¿ÑедÑÑавлÑÐµÑ ÐºÐ°Ð¶Ð´Ð¾Ðµ изобÑажение. - Ркаждой иÑеÑаÑии Ñикла замениÑе знаÑение-заполниÑелÑ
xxxÑÑÑокой, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ñавна пÑÑи к изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² каждом ÑлÑÑае. ÐÑ ÑÑÑанавливаем знаÑение аÑÑибÑÑаsrcÐ´Ð»Ñ ÑÑого знаÑÐµÐ½Ð¸Ñ Ð² каждом ÑлÑÑае. ÐмейÑе в видÑ, ÑÑо в каждом ÑлÑÑае изобÑажение Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²Ð½ÑÑÑи каÑалога изобÑажений, а его Ð¸Ð¼Ñ -pic1.jpg,pic2.jpgи Ñ.д.
Ðобавление обÑабоÑÑика onclick к ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑменÑÑÐµÐ½Ð½Ð¾Ð¼Ñ Ð¸Ð·Ð¾Ð±ÑажениÑ
Ркаждой иÑеÑаÑии Ñикла вам нÑжно добавиÑÑ Ð¾Ð±ÑабоÑÑик onclick к ÑекÑÑÐµÐ¼Ñ newImage:
- ÐайдиÑе знаÑение аÑÑибÑÑа
srcÑекÑÑего изобÑажениÑ. ÐÑо можно ÑделаÑÑ, запÑÑÑив ÑÑнкÑиÑgetAttribute()в<img>в каждом ÑлÑÑае и пеÑедав ей паÑамеÑÑ«src»в каждом ÑлÑÑае. Ðо как полÑÑиÑÑ Ð¸Ð·Ð¾Ð±Ñажение? ÐÑполÑзованиеnewImageне бÑÐ´ÐµÑ ÑабоÑаÑÑ, Ñак как Ñикл завеÑÑаеÑÑÑ Ð´Ð¾ пÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾Ð±ÑабоÑÑиков ÑобÑÑий; ÑÑо пÑиведÑÑ Ðº ÑомÑ, ÑÑо знаÑениеsrcпоÑледнего<img>бÑÐ´ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑено в каждом ÑлÑÑае. ЧÑÐ¾Ð±Ñ ÑеÑиÑÑ ÑÑо, имейÑе в видÑ, ÑÑо в ÑлÑÑае каждого обÑабоÑÑика ÑобÑÑиÑ<img>ÑвлÑеÑÑÑ ÑелÑÑ Ð¾Ð±ÑабоÑÑика. Ðак полÑÑиÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ñ Ð¾Ð±ÑекÑа ÑобÑÑиÑ? - ÐапÑÑÑиÑе ÑÑнкÑиÑ, пеÑедав ей возвÑаÑаемое знаÑение
srcв каÑеÑÑве паÑамеÑÑа. ÐÑ Ð¼Ð¾Ð¶ÐµÑе вÑзваÑÑ ÑÑÑ ÑÑнкÑиÑ, как Ñ Ð¾ÑиÑе. - ÐÑа ÑÑнкÑÐ¸Ñ Ð¾Ð±ÑабоÑÑика ÑобÑÑий должна ÑÑÑановиÑÑ Ð·Ð½Ð°Ñение аÑÑибÑÑа
srcdisplayed-img <img>ÑавнÑм знаÑениÑsrc, пеÑÐµÐ´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð² каÑеÑÑве паÑамеÑÑа. ÐÑ Ñже пÑедоÑÑавили вам ÑÑÑокÑ, в коÑоÑой Ñ ÑаниÑÑÑ ÑÑÑлка на ÑооÑвеÑÑÑвÑÑÑий<img>в пеÑеменной Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼displayedImg. ÐбÑаÑиÑе внимание, ÑÑо здеÑÑ Ð½Ð°Ð¼ нÑжна опÑеделÑÐ½Ð½Ð°Ñ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÑÑнкÑиÑ.
ÐапиÑание обÑабоÑÑика, коÑоÑÑй запÑÑÐºÐ°ÐµÑ ÐºÐ½Ð¾Ð¿ÐºÑ Ð·Ð°ÑÐµÐ¼Ð½ÐµÐ½Ð¸Ñ / подÑвеÑки
ÐÑ Ñже пÑедоÑÑавили ÑÑÑокÑ, в коÑоÑой Ñ
ÑаниÑÑÑ ÑÑÑлка на <button> в пеÑеменной btn. Ðам нÑжно добавиÑÑ Ð¾Ð±ÑабоÑÑик onclick, коÑоÑÑй:
- ÐÑовеÑÑÐµÑ ÑекÑÑее Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа, ÑÑÑановленное на кнопке
<button>â Ð´Ð»Ñ ÑÑого Ñнова можно иÑполÑзоваÑÑgetAttribute(). - ÐÑли Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа
"dark", изменÑÐµÑ ÐºÐ»Ð°ÑÑ<button>на"light"(Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑsetAttribute()), его ÑекÑÑовое ÑодеÑжимое на "СвеÑлее" иbackground-colorналожениÑ<div>на"rgba (0,0,0,0.5)". - ÐÑли Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа не «ÑÑмное», изменÑÐµÑ ÐºÐ»Ð°ÑÑ
<button>на"dark", его ÑекÑÑовое ÑодеÑжимое обÑаÑно на "Темнее" иbackground-colorналожениÑ<div>на"rgba(0,0,0,0)".
СледÑÑÑие ÑÑÑоки ÑлÑÐ¶Ð°Ñ Ð¾Ñновой Ð´Ð»Ñ Ð´Ð¾ÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, ÑказаннÑÑ Ð² пÑнкÑÐ°Ñ 2 и 3 вÑÑе.
btn.setAttribute("class", xxx);
btn.textContent = xxx;
overlay.style.backgroundColor = xxx;
СовеÑÑ Ð¸ подÑказки
- Ðам не нÑжно каким-либо обÑазом ÑедакÑиÑоваÑÑ HTML или CSS.
ÐÑенка
ÐÑли Ð²Ñ Ð¿ÑоводиÑе ÑÑÑ Ð¾ÑÐµÐ½ÐºÑ Ð² ÑÐ°Ð¼ÐºÐ°Ñ Ð¾Ñганизованного кÑÑÑа, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑмеÑÑ Ð¾ÑдаÑÑ ÑÐ²Ð¾Ñ ÑабоÑÑ ÑÐ²Ð¾ÐµÐ¼Ñ ÑÑиÑелÑ/наÑÑÐ°Ð²Ð½Ð¸ÐºÑ Ð´Ð»Ñ Ð¼Ð°ÑкиÑовки. ÐÑли Ð²Ñ ÑамообÑÑаеÑеÑÑ, Ñо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе полÑÑиÑÑ ÑÑководÑÑво по маÑкиÑовке доволÑно легко, задав ÑÐµÐ¼Ñ Ð¾Ð±ÑÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ð± ÑÑом ÑпÑажнении или в IRC-канале #mdn в Mozilla IRC. СнаÑала попÑобÑйÑе ÑпÑажнение - ниÑего не вÑигÑаÑÑ Ð¾Ñ Ð¾Ð±Ð¼Ð°Ð½Ð°!