Ամենահեշտ ճանապարհը ինչ-որ բան վերցնելն ու դնելն է, քան գրելը, թե ինչ վերցնել և որտեղ դնել: Իհարկե, առանց մկնիկի կամ նմանատիպ սարքի, դուք չեք կարող որևէ բան ընտրել և ոչինչ նշել, բայց նույնիսկ ներկայիս իրավիճակում «քաշել և թողնել» գաղափարի օգտագործումը շատ բնական և հարմարավետ է:
Գաղափարի կիրառման դաշտը հեռու է միայն առցանց խանութներից, էլեկտրոնային գրադարաններից, որոնման համակարգերից կամ Տեղեկատվական համակարգեր, այլեւ կիրառական ոլորտը։ Գաղափարը շատ կիրառելի է կայքերի և դրանց տարրերի մշակման մեջ՝ ստեղծված և պահպանվող ինտերակտիվ կերպով, առանց ծրագրավորողի մասնակցության։
Գաղափարի նկարագրությունը
Ընտրեք, տեղափոխեք և տեղադրեք - գաղափարը բնական է և հարմար: Զարմանալի է, որ այն չծնվեց, երբ մկնիկը դարձավ համակարգչային անփոխարինելի աքսեսուար:
Ամենաակնառու օրինակը առցանց խանութում ապրանք ընտրելն է: Ցանկալի ապրանքը մկնիկով վերցնելը և գնումների զամբյուղը քարշ տալը պարզ է, բնական և հարմար։ Ֆայլերի վերբեռնում. բրաուզերի պատուհանից դուրս փաստաթուղթ վերցնելը և էջի տարրի վրա տեղադրելը, դրանով իսկ սկսելով փաստաթուղթը սերվեր տեղափոխելը, նույնպես գործնական գաղափար է:
Մշակողի համար «քաշել և թողնել» գաղափարը էջի տարրերի մանիպուլյացիա է առանց պիտակների կոորդինատների և չափերի ձեռքով վերահաշվարկի, մի քանի տարրեր ընտրելու և դրանք հավասարեցնելու, ինչպես նաև բլոկային պիտակների կողմերը տեղափոխելու հնարավորություն:
HTML և CSS - մեծ լեզուներպիտակների և դրանց դիզայնի ոճերի նկարագրությունները, բայց երբ մշակողը կարող է ինտերակտիվ կերպով կառավարել էջի տարրերը՝ առանց ձեռքով վերահաշվարկելու կոորդինատները և չափերը, դա աշխատանքն ավելի հարմարավետ և արդյունավետ է դարձնում:
Հեշտ ֆայլերի փոխանցում
«Քաշել և թողնել». անգլերենից ռուսերեն թարգմանությունը բառացիորեն հնչում է «քաշել և թողնել»: Գործնականում այն ավելի լավ է հնչում և աշխատում՝ ընտրել, փոխանցել և թողարկել՝ պարզ և բնականաբար:
Այն շատ պարզ է կիրառել էջի վրա՝ ֆայլեր փոխանցելով էջ, սերվեր կամ այլ օգտագործման համար:
Այս օրինակում աշխատասեղանի մի քանի ֆայլ ընտրվել են մկնիկի օգնությամբ (ձախ նկար): Ընտրության վրա սեղմվեց մկնիկի ձախ կոճակը և ընտրվածը «գնաց» զամբյուղ: Բրաուզերն ինքն է ցույց տվել, թե ինչպես է դա տեղի ունենում, գրել է «պատճեն» հուշում և ստեղծել ֆայլերի ուրվագծերը, որոնք պետք է տեղափոխվեն:
Երբ մկնիկը դրված էր զամբյուղի վրայից, այցելուն բաց թողեց մկնիկի ձախ կոճակը, տեղի ունեցավ քաշել և թողնել իրադարձությունը, և կայքի էջում (ներքևի նկար) JavaScript կոդը կարողացավ ստանալ և մշակել բոլոր ֆայլերը, որոնք այցելուը: տրամադրվում է էջին (կայքին):
Իրականացման նկարագրություն
Այս ընթացակարգը կատարող կոդը շատ պարզ է. Նույնիսկ սկսնակ մշակողը կարող է կրկնել այն ցանկացած օգտագործման դեպքում:
Այստեղ օգտատիրոջ միջերեսը ներկայացված է երկու պիտակով՝ scPlaceFile (սա հենց զամբյուղն է, որտեղ պետք է տեղադրել ֆայլեր) և scPlaceFiles (սա ֆայլերի մշակման արդյունք է, այս դեպքում՝ դրանց ցանկը)։
Էջի տրամաբանությունը հետևյալն է. Երբ էջը բեռնվում է բրաուզերում, զամբյուղում նշանակվում է «ondrop» իրադարձությունների մշակիչը՝ դնելու համար մնացած իրադարձությունները արգելափակված են և չեն օգտագործվում:
Էջն աշխատում է նորմալ ռեժիմով, բայց հենց որ այցելուն ընտրի ֆայլը (ներ)ը և դրանք քաշի զամբյուղի նկարի վրա, այսինքն՝ scPlaceFile պիտակի վրա, կսկսվի «Ֆայլերը ժամանել» իրադարձության մշակումը։
Այս կարգավորիչը պարզապես ցուցադրում է ֆայլերի ցանկը: Նրանց համարը գտնվում է event.dataTransfer.files.length-ում, իսկ յուրաքանչյուր ֆայլի մասին տեղեկատվությունը event.dataTransfer.files [i] .name-ում: Ինչ անել ստացված տվյալների հետ, որոշում է մշակողը, այս դեպքում ստացված ֆայլերի ցանկը պարզապես ձևավորվում է։
Մշակվելուց հետո միջոցառումն արգելափակվում է և չի տարածվում: Դա անհրաժեշտ է, որպեսզի զննարկիչը ինքնազբաղված չլինի և չխանգարի ստացված տեղեկատվության մշակմանը:
DnD և արտաքին տվյալներ
Պատկերների վերբեռնումը սերվեր՝ օգտագործելով քաշել և թողնել, սովորական պրակտիկա է այս տեխնոլոգիայում: Սովորաբար, մշակողը ստեղծում է ֆայլի վերբեռնման ձև (1), որն աշխատում է սովորական ձևով (2): Այցելուն կարող է ներս մտնել նորմալ ռեժիմընտրեք ֆայլեր և վերբեռնեք դրանք:
Այնուամենայնիվ, եթե ձևաթղթի որոշակի վայրի այցելուն կատարում է «քաշել և թողնել», ապա ֆայլի անվանման դաշտը ավտոմատ կերպով կլրացվի:
Սա լավ որոշում... Իհարկե, շատ դժվար է խոստովանել, որ համակարգչի վրա մկնիկ չկա։ Բայց ավելի լավ է նախագծել օգտատիրոջ միջերեսը կանոնավոր ձևով և DnD-ի իրականացման մեջ:
DnD և ներքին տվյալներ
Այցելուների շահերը հոգալը միշտ կարևոր է, բայց կարևոր են նաև մշակողի մտահոգությունները: Քաշել և թողնել կարող է իրականացվել ոչ միայն ստանդարտ միջոցներով, այլ նաև էջի տարրերի վրա մկնիկի իրադարձությունների մշակմամբ:
Մշտապես առաջանում է պիտակների կոորդինատների արժեքների և դրանց չափերի հաշվարկման խնդիր: Ձեռքով հաշվարկը լավ պրակտիկա է, բայց ինտերակտիվ տարբերակը ավելի հարմար է: Բոլոր թեգերը միշտ ուղղանկյուն են, և տարրերի կողքերում հետևելով մկնիկի իրադարձություններին՝ կարող եք ստեղծել տարրերն ավտոմատ կերպով էջի ճիշտ տեղում տեղափոխելու կամ դրանք փոխելու հնարավորություն:
Մկնիկի կոճակի վրա սեղմելու իրադարձության կառավարում - սեղմման վայրի կոորդինատների պահպանում, օրինակ՝ տարրի կողմերից մեկը: Տեղափոխեք մկնիկը - կողմը շարժվում է ցանկալի ուղղությամբ: Ազատելով մկնիկի կոճակը - կողմը կանգ է առնում և դրա կոորդինատները փոխվում են: Այս կերպ Դուք կարող եք փոխել տարրի դիրքը կամ դրա չափը:
Սա պաշտոնապես «քաշել և թողնել» չէ, բայց էֆեկտը նման է և գործնական: Էջի ցանկացած տարրի համար ունիվերսալ մշակիչներ պատրաստելով, դուք կարող եք լավ ինտերակտիվ արդյունքներ ստանալ, արագացնել զարգացումը և պարզեցնել ձեր կոդը:
Տեսողական և ձեռքով ծրագրավորում
Մկնիկը համակարգչի վրա և մատները սմարթֆոնի վրա բոլորովին այլ մոտեցումներ են օգտատիրոջ միջերեսի (այցելու, մշակող) ներդրման համար: Սա բնական և ժամանակակից պահանջ է բրաուզերների համատեղելիության համար:
Այս ամենը միասին դժվարացնում է էջերի ստեղծումը, սակայն դրա մեջ կիրառելով «քաշել և թողնել» գաղափարը ստանդարտ ձևօգտագործելով իր իրադարձությունները, համատեղելով այս գաղափարը տարրերի սովորական իրադարձությունների հետ, դուք կարող եք իրականացնել մեխանիզմ, որով էջի ստեղծումը տեղի կունենա տեսողականորեն:
Հիմա եկեք նայենք առարկայի կամ իրերի ընտրությանը: Ընտրության փաստը համատեքստային մենյուի տեսքն է, օրինակ, նպատակն է հավասարեցնել ընտրվածը (ձախ, աջ, կենտրոն), կամ տարրերը ուղղահայաց կամ հորիզոնական բաշխել նույն քայլով, կամ փոխել դրանց չափերը (նվազագույնը, առավելագույնը) .
Կոորդինատների և չափերի ավտոմատ վերահաշվարկը նախընտրելի է ձեռքով վերահաշվարկից: Ավելի քիչ սխալներ - նպատակն ավելի արագ է հասնում: Բացի այդ, դուք կարող եք էջ պատրաստել մեկ բրաուզերում, պահպանել տարրերի դիրքն ու չափը։ Բացելով այս էջը սմարթֆոնի վրա՝ կարող եք ուղղել կոորդինատների և չափերի արժեքները և հիշել դրանք կոնկրետ մոդելսմարթֆոնի կամ բրաուզերի տարբերակ:
Այսպիսով, նույն էջը, առանց ձեռքով համապատասխանեցնելու բրաուզերի պահանջներին, տարբեր տվյալներ կունենա ցուցադրելու համար տարբեր սարքերև տարբեր բրաուզերներում:
Եթե այցելուին թույլ տաք ինքնուրույն կատարել այս ընթացակարգերը, ինչպես նաև ընտրել էջի անհրաժեշտ տարրերը մշակողի կողմից տրամադրվածներից, կարող եք ապահովել բրաուզերի համատեղելիությունը և էջի պահանջվող ֆունկցիոնալությունը՝ հաշվի առնելով օգտատիրոջ կարծիքը: .
Քաշել և թողնել ֆունկցիան կարող է օգնել բարձրացնել ձեր iPad-ի աշխատանքը: Ահա թե ինչպես կարող եք օգտագործել այն:
Այսպիսով, դուք կարող եք ֆայլ տեղափոխել մեկ ամպային պահեստավորման ծառայությունից մյուսը, պատճենել տեքստը Safari-ից տեքստի խմբագրման հավելված՝ մեջբերում ավելացնելու կամ ստեղծելու համար: կրկնօրինակումորոշակի լուսանկարներ ֆայլերի պահպանման հավելվածում:
Ինչպես քաշել և թողնել լուսանկարներ, ֆայլեր և տեքստ
1. Հպեք և պահեք լուսանկարը, ֆայլը կամ ընդգծված տեքստը, որը ցանկանում եք քաշել մեկ այլ հավելված:
2. Քաշեք տարրը դեպի ցանկալի վայրը այս հավելվածըկամ մեկ այլ, որը բացել եք «Slide Over» կամ «Split View» ռեժիմում և թողարկել:
Ինչպես քաշել և թողնել մի քանի լուսանկարներ կամ ֆայլեր միաժամանակ
1. Հպեք և պահեք այն լուսանկարներից կամ ֆայլերից մեկը, որոնք ցանկանում եք քաշել:
2. Ընթացիկ տարրը քաշելիս հպեք մեկ այլ լուսանկար կամ ֆայլ, որը նույնպես ցանկանում եք քաշել: Կրկին արեք դա այնքան իրերով, որքան ցանկանում եք տեղափոխել:
3. Քաշեք բոլոր ընտրված օբյեկտները նշանակված վայր մեկ այլ հավելվածում, որը բացել եք Slide Over կամ Split View-ում և բաց թողեք դրանք:
Ինչպես քաշել տեքստը մի հավելվածից մյուսը
1. Հպեք և պահեք տեքստի այն հատվածը, որը ցանկանում եք քաշել՝ այն ընտրելու համար:
2. Օգտագործեք ընտրության կետերը՝ ընտրելու տեքստի մնացած մասը, որը ցանկանում եք քաշել:
3. Սեղմեք և պահեք ընդգծված տեքստը:
4. Քաշեք տեքստը հավելվածի մեջ, որտեղ ցանկանում եք տեղադրել այն և թողարկեք:
Ինչպես փոխել միանգամից մի քանի հավելվածների պատկերակների դասավորությունը՝ օգտագործելով «Քաշել և թողնել»
Թեև iOS-ում քաշել և թողնել գործառույթների մեծ մասն աշխատում է միայն iPad-ի վրա, այս հնարքն իրականում աշխատում է և՛ iPhone-ի, և՛ iPad-ի վրա: Սա թույլ է տալիս կազմակերպել հավելվածների դասավորությունը ձեր հիմնական էկրանին՝ օգտագործելով « Քաշեք և գցեք «դրանք մեկ առ մեկ տեղափոխելու փոխարեն:
1. Սեղմեք և պահեք այն հավելվածի պատկերակը, որը ցանկանում եք փոխել հիմնական էկրանին:
2. Հպեք լրացուցիչ հավելվածներին, որոնք նույնպես ցանկանում եք տեղափոխել:
3. Քաշեք այս հավելվածները դեպի այն էջը կամ թղթապանակը, որտեղ ցանկանում եք, որ դրանք լինեն և թողարկեք դրանք:
182
Այս օրինակում մենք ընտրում ենք div տարրը և այն դարձնում ենք լողացող՝ կանչելով քարշվող () մեթոդ... Ինչպես ցույց է տրված ստորև նկարում, բացված փաստաթղթում տարրը վերցնում է իր նորմալ դիրքը, բայց դրանից հետո այն կարող է մկնիկի ցուցիչով տեղափոխվել բրաուզերի պատուհանի ցանկացած տեղ.
Քաշել և թողնել ֆունկցիան ինքնին օգտակար է, բայց այն ավելի օգտակար է, երբ օգտագործվում է Droppable փոխազդեցության հետ միասին, որը նկարագրված է ստորև:
Interaction Draggable-ն իրականացվում է բացառապես հատուկ HTML նշագրման և CSS ոճերի օգտագործման միջոցով: Սա նշանակում է, որ այս ֆունկցիոնալությունը կաշխատի գրեթե ցանկացած բրաուզերում, սակայն դրանով օժտված տարրերը չեն կարողանա աշխատել նմանատիպ բնիկ քաշել և թողնել գործիքների հետ: օպերացիոն համակարգեր.
HTML5 հատկորոշմամբ սահմանված քաշել և թողնել գործողությունները սովորաբար իրականացվում են օպերացիոն համակարգերի բնիկ մեխանիզմների միջոցով: Եթե դուք օգտագործում եք jQuery UI-ի «Քաշել և թողնել» մեխանիզմը, ապա ավելի լավ է անջատել HTML5 համարժեքները՝ կոնֆլիկտներից խուսափելու համար: Այդ նպատակով փաստաթղթի հիմնական տարրի draggable հատկանիշը սահմանեք false-ի:
Քաշվող փոխազդեցության կարգավորում
Կան բազմաթիվ հարմարեցման տարբերակներ Քաշվող փոխազդեցության համար: Ամենակարևոր հատկությունները, որոնք քննարկվում են հետևյալ բաժիններում, ամփոփված են ստորև բերված աղյուսակում.
Սեփականություն | Նկարագրություն |
---|---|
առանցք | Սահմանափակում է շարժումը կոնկրետ ուղղություններով: Կանխադրվածը false է, ինչը նշանակում է, որ սահմանափակումներ չկան, բայց կարող եք նաև նշել «x» արժեքը (շարժվել միայն X առանցքի երկայնքով) կամ «y» (շարժվել միայն Y առանցքի երկայնքով) |
զսպում | Սահմանափակում է լողացող տարրի դիրքը էկրանի որոշակի հատվածում: Աջակցվող արժեքների տեսակները նկարագրված են ստորև բերված աղյուսակում՝ օգտագործելով համապատասխան օրինակը: Լռելյայն կեղծ է, ինչը նշանակում է, որ սահմանափակումներ չկան |
ուշացում | Որոշում է, թե տարրը որքան ժամանակ պետք է քաշվի, մինչև այն շարժվի: Լռելյայն 0 է, ինչը նշանակում է, որ ուշացում չկա |
հեռավորությունը | Որոշում է այն հեռավորությունը, որը օգտվողը պետք է քաշի տարրն իր սկզբնական դիրքից, նախքան այն իրականում շարժվելը: Նախնականը 1 պիքսել է |
ցանց | Ստիպում է տեղափոխված տարրի ճեղքումը ցանցի բջիջներին: Նախնականը կեղծ է, ինչը նշանակում է, որ պարտադիր չէ |
Շարժման ուղղությունների սահմանափակում
Կան մի քանի եղանակներ, որոնցով դուք կարող եք սահմանափակել տարրի շարժումը որոշակի ուղղություններով: Առաջինն այն է, որ օգտագործենք առանցքի տարբերակը՝ սահմանափակելու շարժման ուղղությունը դեպի X կամ Y առանցքի: Օրինակը ներկայացված է ստորև.
...