Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² JavaScript для Мага». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 11

Автор Π‘Ρ‚Π΅Ρ„Π°Π½ ΠšΠΎΡ…

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ β€” Π±Π΅Π· сомнСния ΠΌΠΎΠ³ΡƒΡ‡Π΅Π΅ срСдство ΡƒΠ»ΠΈΡ‡ΡˆΠ΅Π½ΠΈΡ Π’Π°ΡˆΠ΅ΠΉ web-страницы. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Image Π΄Π°Π΅Ρ‚ Π’Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТныС эффСкты. Однако Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ всякоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° JavaScript способно ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π’Π°ΡˆΡƒ страницу. Если Π’Ρ‹ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎ Π‘Π΅Ρ‚ΠΈ, Ρ‚ΠΎ смоТСтС ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ мноТСство ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Π³Π΄Π΅ изобраТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ самым уТасным способом. НС количСство ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Π’Π°ΡˆΡƒ web-страницу ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, Π° ΠΈΡ… качСство. Π‘Π°ΠΌΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° 50 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ ΠΏΠ»ΠΎΡ…ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ способна Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ создании ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… эффСктов с изобраТСниями с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΠ± этом ΠΈ ваши посСтитСлями/ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‡Π°Ρ‰Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π° Π’Π°ΡˆΠΈ страницы.

Π§Π°ΡΡ‚ΡŒ 9: Π‘Π»ΠΎΠΈ I

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ слои?


Π‘Π»ΠΎΠΈ β€” это ΠΎΠ΄Π½Π° ΠΈΠ· Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Netscape Navigator 4.0. Она позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² web-страницы, ΠΊΠ°ΠΊ изобраТСния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ вашСй HTML-страницС. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ.

Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ слоями ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка JavaScript. Π― надСюсь, Ρ‡Ρ‚ΠΎ Π’Ρ‹, ΠΊΠ°ΠΊ ΠΈ я, ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΈΡ‚Π΅ΡΡ‚ΡŒ энтузиазмом Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ возмоТностСй этих слоСв.

Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ слоями Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Netscape Navigator 4.0!

И, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, я Π½Π΅ Π±ΡƒΠ΄Ρƒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ тэги. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ всС свойства Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Netscape Navigator 4.0, ΠΊΠ°ΠΊ слои, находится ΠΏΠΎ адрСсу http://home.netscape.com/comprod/products/communicator/index.html β€” ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρƒ мСня Π½Π΅Ρ‚ Π½ΡƒΠΆΠ΄Ρ‹ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ слои? ΠžΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ это ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: Π±Π΅Ρ€Π΅Ρ‚Π΅ нСсколько листов Π±ΡƒΠΌΠ°Π³ΠΈ. На ΠΎΠ΄Π½ΠΎΠΌ листС ΠΏΠΈΡˆΠ΅Ρ‚Π΅ тСкст. На Π΄Ρ€ΡƒΠ³ΠΎΠΌ β€” рисуСтС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ. На Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ листС Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΈ вписываСтС Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π΅Π΅ Π½Π΅ΠΊΠΈΠΉ тСкст. И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ»Π°Π΄Π΅Ρ‚Π΅ эти листы Π½Π° стол. Допустим, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ лист β€” это Π½Π΅ΠΊΠΈΠΉ слой. Π’ этом смыслС слой прСдставляСт собой Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€ΠΎΠ΄Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя (ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ) Π½Π΅ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ β€” Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это Π±ΡƒΠ΄Π΅Ρ‚ тСкст ΠΈ изобраТСния.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±Π΅Ρ€Π΅ΠΌ Π±ΡƒΠΌΠ°Π³Ρƒ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π΄Π²ΠΈΠ³Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎ столу. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слСдитС Π·Π° Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ двиТСтся вслСд Π·Π° Π±ΡƒΠΌΠ°Π³ΠΎΠΉ. Если Π’Ρ‹ смСстим лист Π±ΡƒΠΌΠ°Π³ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ, Ρ‚ΠΎ ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΆΠ΅ сдвинСтся! И Ρ‡Ρ‚ΠΎ ΠΆΠ΅ собствСнно ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· этого ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°? Π‘Π»ΠΎΠΈ, способныС ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ изобраТСния, Ρ„ΠΎΡ€ΠΌΡ‹, тСкст, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½Π° Π’Π°ΡˆΡƒ HTML-страницу ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π½Π΅ΠΉ. Если Π’Ρ‹ сдвигаСтС ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ слой, Ρ‚ΠΎ ΠΈ всС содСрТащиСся Π² этом слоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ это Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅.

Π‘Π»ΠΎΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ простым листам Π±ΡƒΠΌΠ°Π³ΠΈ Π½Π° столС. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ слоС ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅ области. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π² листС Π±ΡƒΠΌΠ°Π³ΠΈ Π΄Ρ‹Ρ€ΠΊΡƒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ этот лист Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π’Π°ΠΊΠΎΠ΅ отвСрстиС β€” это 'прозрачная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ' Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ листС β€” ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π· Π²ΠΈΠ΄Π½Ρ‹ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ листы.


БозданиС слоСв


Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ слой, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ тэг <layer> Π»ΠΈΠ±ΠΎ <ilayer>. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:



Вэг <layer> ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚Π΅Ρ… слоСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Если ΠΆΠ΅ Π’Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ слоя (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² left ΠΈ top), Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ помСщаСтся Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» ΠΎΠΊΠ½Π°.

Вэг <ilayer> создаСт слой, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ опрСдСляСтся ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Ρ‡Π½Π΅ΠΌ с простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²Π° слоя. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” тСкст. ВсС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ этот тСкст ΠΏΠΎΠ²Π΅Ρ€Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ изобраТСния.



ВСкст ΠΏΠΎΠ²Π΅Ρ€Ρ… изобраТСния


Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

<html>

<layer name=pic z-index=0 left=200 top=100>

<img src="img.gif" width=160 height=120>

</layer>

<layer name=txt z-index=1 left=200 top=100>

<font size=+4> <i> Layers-Demo </i> </font>

</layer>

</html>


Как Π²ΠΈΠ΄ΠΈΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тэга <layer> ΠΌΡ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π²Π° слоя. Оба слоя ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ 200/100 (Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ left ΠΈ top). ВсС, Ρ‡Ρ‚ΠΎ находится ΠΌΠ΅ΠΆΠ΄Ρƒ тэгами <layer> ΠΈ </layer> (ΠΈΠ»ΠΈ тэгами <ilayer> ΠΈ </ilayer>) ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ описываСмому слою.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ z-index, опрСдСляя Ρ‚Π΅ΠΌ самым порядок появлСния ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… слоСв β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π² нашСм случаС, Π’Ρ‹ Ρ‚Π΅ΠΌ самым сообщаСтС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ, Ρ‡Ρ‚ΠΎ тСкст Π±ΡƒΠ΄Π΅Ρ‚ написан ΠΏΠΎΠ²Π΅Ρ€Ρ… изобраТСния. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС, ΠΈΠΌΠ΅Π½Π½ΠΎ слой с самым высоким Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ z-index Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΠΎΠ²Π΅Ρ€Ρ… всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Π’Ρ‹ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π² Π²Ρ‹Π±ΠΎΡ€Π΅ z-index лишь значСниями 0 ΠΈ 1 β€” ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ любоС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число.

Π’Π°ΠΊ, Ссли Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ тэгС <layer> Π’Ρ‹ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ z-index=100, Ρ‚ΠΎ тСкст окаТСтся ΠΏΠΎΠ΄ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ β€” Π΅Π³ΠΎ слой Π½ΠΎΠΌΠ΅Ρ€ Z-индСкса (z-index=1). Π’Ρ‹ смоТСтС ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ тСкст сквозь ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я использовал Π² Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ Ρ„ΠΎΠ½ (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ gif89a).



Π’Π΅ΠΊΡ‚ ΠΏΠΎΠ΄ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ


Π‘Π»ΠΎΠΈ ΠΈ JavaScript


Рассмотрим Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ слоям Ρ‡Π΅Ρ€Π΅Π· JavaScript. НачнСм ΠΆΠ΅ ΠΌΡ‹ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, наТимая ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ слой.

Для Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ слои прСдставлСны Π² JavaScript. Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, для этого ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ нСсколько способов. Π‘Π°ΠΌΠΎΠ΅ Π»ΡƒΡ‡ΡˆΠ΅Π΅ β€” Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ слою своС имя. Π’Π°ΠΊ, Ссли ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ слой


<layer… name=myLayer>

…

</layer>


Ρ‚ΠΎ Π² дальнСйшСм ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции document.layers["myLayer"]. Богласно Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, прСдоставляСмой Ρ„ΠΈΡ€ΠΌΠΎΠΉ Netscape, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запись document.myLayer β€” ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΌΠΎΠ΅ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сбою. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это всСго лишь ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии ΠΈ Π² Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π΅ΡˆΠ΅Π½Π° (сСйчас я ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ Netscape Navigator 4.0 PR3 Π½Π° WinNT). Однако, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡƒ, Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с конструкциСй document.layers["myLayer"] β€” поэтому ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ ΠΈΠ· всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ….

Доступ ΠΊ этим слоям ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· цСлочислСнный индСкс. Π’Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ самому Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ слою, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ document.layers[0]. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ индСкс β€” это Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ z-index. Если, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π’Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π²Π° слоя, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ layer1 ΠΈ layer2 с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ z-index 17 ΠΈ 100, Ρ‚ΠΎ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этим слоям Ρ‡Π΅Ρ€Π΅Π· document.layers[0] ΠΈ document.layers[1], Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· document.layers[17] ΠΈ document.layers[100].

Π‘Π»ΠΎΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ нСсколько свойств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скрипта Π½Π° JavaScript. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ прСдставлСна ΠΊΠ½ΠΎΠΏΠΊΠ°, которая позволяСт Π’Π°ΠΌ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ слой (трСбуСтся Netscape Navigator вСрсии 4.0 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅).

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ скрипта выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


<html>

<head>

<script language="JavaScript">

<!- hide

function showHide() {

if (document.layers["myLayer"].visibility == "show")

document.layers["myLayer"].visibility= "hide"

else document.layers["myLayer"].visibility= "show";

}

// β€” >

</script>

</head>

<body>

<ilayer name=myLayer visibility=show>

<font size=+1 color="#0000ff"><i>This text is inside a layer</i></font>

</ilayer>

<form>

<input type="button" value="Show/Hide layer" onClick="showHide()">

</form>

</body>

</html>


Данная ΠΊΠ½ΠΎΠΏΠΊΠ° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ showHide(). МоТно Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² этих функциях рСализуСтся доступ ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ свойству ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° layer (myLayer), ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΠ²Π°Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ document.layers["myLayer"].visibility значСния "show" ΠΈΠ»ΠΈ "hide", Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ наш слой. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ "show" ΠΈ "hide" β€” это строки, Π° Π½Π΅ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ document.layers["myLayer"].visibility= show.

ВмСсто тэга <layer> я Ρ‚Π°ΠΊΠΆΠ΅ пользовался тэгом <ilayer>, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ…ΠΎΡ‚Π΅Π» ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ этот слой Π² "ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ" Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.


ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ слоСв


Бвойства left ΠΈ top ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π·Π°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ слоя. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ, записывая Π² эти Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ значСния. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС задаСтся Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ слоя Π² 200 пиксСлов:

document.layers["myLayer2"].left= 200;

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ пСрСмСщСния слоСв β€” ΠΎΠ½Π° создаСт Π½Π΅Ρ‡Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΊΠ½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

Π‘Π°ΠΌ скрипт выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<html>

<head>

<script language="JavaScript">

<!- hide

function move() {

if (pos < 0) direction= true;

if (pos > 200) direction= false;

if (direction) pos++

else pos-;

document.layers["myLayer2"].left= pos;

}

// β€” >

</script>

</head>

<body onLoad="setInterval('move(), 20)">

<ilayer name=myLayer2 left=0>

<font size=+1 color="#0000ff"><i>This text is inside a layer</i></font>