უმარტივესი გზაა რაღაცის აღება და ჩასმა, ვიდრე დაწერა, რა აიღო და სად დადო. რა თქმა უნდა, მაუსის, ან მსგავსი მოწყობილობის გარეშე, ვერაფერს ვერ აირჩევთ და არაფერს მიუთითებთ, მაგრამ ამჟამინდელ მდგომარეობაშიც კი, „გადაათრიეთ და ჩამოაგდეთ“ იდეის გამოყენება ძალიან ბუნებრივი და კომფორტულია.
იდეის გამოყენების სფერო შორს არის მხოლოდ ონლაინ მაღაზიებისგან, ელექტრონული ბიბლიოთეკებისგან, საძიებო სისტემებისგან ან Ინფორმაციული სისტემები, არამედ გამოყენებითი სფეროც. იდეა ძალიან გამოსაყენებელია საიტების და მათი ელემენტების განვითარებაში, შექმნილი და შენახული ინტერაქტიულად, პროგრამისტის მონაწილეობის გარეშე.
იდეის აღწერა
აირჩიეთ, გადაიტანეთ და განათავსეთ - იდეა ბუნებრივი და მოსახერხებელია. გასაოცარია, რომ ის არ დაბადებულა, როდესაც მაუსი გახდა კომპიუტერის შეუცვლელი აქსესუარი.
ყველაზე აშკარა მაგალითია პროდუქტის არჩევა ონლაინ მაღაზიაში. სასურველი პროდუქტის თაგვით აღება და საყიდლების კალათაში ჩათრევა მარტივი, ბუნებრივი და მოსახერხებელია. ფაილების ატვირთვა: დოკუმენტის ბრაუზერის ფანჯრის გარეთ გატანა და გვერდის ელემენტზე განთავსება, რითაც დოკუმენტის სერვერზე გადაცემის დაწყება, ასევე პრაქტიკული იდეაა.
დეველოპერისთვის, "გადაათრიეთ და ჩამოაგდეთ" იდეა არის გვერდის ელემენტებით მანიპულირება ტეგების კოორდინატებისა და ზომების ხელით გადაანგარიშების გარეშე, რამდენიმე ელემენტის არჩევისა და მათი გასწორების, აგრეთვე ბლოკის ტეგების გვერდების გადაადგილების შესაძლებლობა.
HTML და CSS - დიდი ენებიტეგების აღწერილობები და მათი დიზაინის სტილები, მაგრამ როდესაც დეველოპერს აქვს გვერდის ელემენტების ინტერაქტიული მანიპულირების შესაძლებლობა კოორდინატებისა და ზომების ხელით გადაანგარიშების გარეშე, ეს სამუშაოს უფრო კომფორტულს და ეფექტურს ხდის.
მარტივი ფაილის გადაცემა
"გადაათრიეთ და ჩამოაგდეთ": ინგლისურიდან რუსულად თარგმანი სიტყვასიტყვით ჟღერს "გადაათრიეთ და ჩამოაგდეთ". პრაქტიკაში ის უკეთესად ჟღერს და მუშაობს: აირჩიეთ, გადაიტანეთ და გაათავისუფლეთ - მარტივად და ბუნებრივად.
ძალიან მარტივია გვერდზე გადატანა ფაილების გვერდზე, სერვერზე ან სხვა გამოყენებისთვის.
ამ მაგალითში, დესკტოპზე რამდენიმე ფაილი შეირჩა მაუსით (მარცხნივ სურათი). არჩევისას დააჭირეს მაუსის მარცხენა ღილაკს და არჩეული „გავიდა“ კალათაში. თავად ბრაუზერმა აჩვენა როგორ ხდება ეს, დაწერა მინიშნება „ასლი“ და შექმნა გადასატანი ფაილების კონტურები.
როდესაც მაუსი კალათას მიუახლოვდა, ვიზიტორმა გაათავისუფლა მაუსის მარცხენა ღილაკი, მოხდა ჩათრევა და ჩამოგდება ღონისძიება და საიტის გვერდზე (ქვედა ფიგურა) JavaScript კოდმა შეძლო ყველა ფაილის მიღება და დამუშავება, რომელიც ვიზიტორმა მიეწოდება გვერდზე (საიტს).
განხორციელების აღწერა
კოდი, რომელიც ასრულებს ამ პროცედურას, ძალიან მარტივია. ახალბედა დეველოპერსაც კი შეუძლია მისი გამეორება ნებისმიერ შემთხვევაში.
აქ მომხმარებლის ინტერფეისი წარმოდგენილია ორი ტეგით: scPlaceFile (ეს არის თავად კალათა, სადაც ფაილების განთავსება გჭირდებათ) და scPlaceFiles (ეს არის ფაილების დამუშავების შედეგი, ამ შემთხვევაში მათი სია).
გვერდის ლოგიკა ასეთია. ბრაუზერში გვერდის ჩატვირთვისას კალათაში ენიჭება ღონისძიების „ondrop“ დამმუშავებელი - დასაყენებლად დანარჩენი ივენთები იბლოკება და არ გამოიყენება.
გვერდი ნორმალურად მუშაობს, მაგრამ როგორც კი ვიზიტორი შეარჩევს ფაილს(ებს) და გადაათრევს მათ კალათის სურათზე, ანუ scPlaceFile ტეგზე, დაიწყება ღონისძიების "ფაილის მოვიდა" დამუშავება.
ეს დამმუშავებელი უბრალოდ აჩვენებს ფაილების სიას. მათი რიცხვი არის event.dataTransfer.files.length, ხოლო ინფორმაცია თითოეული ფაილის შესახებ არის event.dataTransfer.files [i] .name. რა უნდა გააკეთოს მიღებულ მონაცემებთან, განსაზღვრავს დეველოპერი, ამ შემთხვევაში, უბრალოდ ყალიბდება მიღებული ფაილების სია.
დამუშავების შემდეგ, ღონისძიება იბლოკება და არ ვრცელდება. ეს აუცილებელია იმისათვის, რომ ბრაუზერი არ იყოს თვითდასაქმებული და ხელი არ შეუშალოს მიღებული ინფორმაციის დამუშავებას.
DnD და გარე მონაცემები
სერვერზე სურათების ატვირთვა გადაადგილების გამოყენებით ამ ტექნოლოგიაში გავრცელებული პრაქტიკაა. როგორც წესი, დეველოპერი ქმნის ფაილის ატვირთვის ფორმას (1), რომელიც მუშაობს ჩვეულებრივი გზით (2). ვიზიტორს შეუძლია შესვლა ნორმალური რეჟიმიაირჩიეთ ფაილები და ატვირთეთ ისინი.
თუმცა, თუ ფორმაში გარკვეული ადგილის სტუმარი აკეთებს "გადაათრიეთ და ჩამოაგდებს", მაშინ ფაილის (ებ)ის სახელის ველი ავტომატურად შეივსება.
ეს კარგი გადაწყვეტილება... რა თქმა უნდა, ძალიან რთულია იმის აღიარება, რომ კომპიუტერზე მაუსი არ არის. მაგრამ უმჯობესია მომხმარებლის ინტერფეისის დაპროექტება რეგულარული გზით და DnD განხორციელებით.
DnD და შიდა მონაცემები
ვიზიტორის ინტერესებზე ზრუნვა ყოველთვის მნიშვნელოვანია, მაგრამ მნიშვნელოვანია დეველოპერის საზრუნავიც. Drag and drop შეიძლება განხორციელდეს არა მხოლოდ სტანდარტული საშუალებებით, არამედ მაუსის მოვლენების გვერდის ელემენტებზე დამუშავებით.
ტეგების კოორდინატების მნიშვნელობების და მათი ზომების გაანგარიშების ამოცანა მუდმივად ჩნდება. ხელით გაანგარიშება კარგი პრაქტიკაა, მაგრამ ინტერაქტიული ვარიანტი უფრო მოსახერხებელია. ყველა ტეგი ყოველთვის მართკუთხაა და ელემენტების გვერდებზე მაუსის მოვლენებს თვალყურის დევნით, შეგიძლიათ შექმნათ ელემენტების ავტომატურად გადატანის შესაძლებლობა გვერდზე სწორ ადგილას, ან შეცვალოთ ისინი.
მაუსის ღილაკზე დაწკაპუნების მოვლენის მართვა - დაწკაპუნების ადგილის კოორდინატების შენახვა, მაგალითად, ელემენტის ერთ-ერთი მხარე. ამოძრავეთ მაუსი - მხარე მოძრაობს სასურველი მიმართულებით. მაუსის ღილაკის გაშვება - მხარე ჩერდება და იცვლება მისი კოორდინატები. ამ გზით თქვენ შეგიძლიათ შეცვალოთ ელემენტის პოზიცია ან მისი ზომა.
ეს არ არის ფორმალურად "გადაათრიეთ და ჩამოაგდეთ", მაგრამ ეფექტი მსგავსი და პრაქტიკულია. ნებისმიერი გვერდის ელემენტისთვის უნივერსალური დამმუშავებლების შექმნით, შეგიძლიათ მიიღოთ კარგი ინტერაქტიული შედეგები, დააჩქაროთ განვითარება და გაამარტივოთ თქვენი კოდი.
ვიზუალური და ხელით პროგრამირება
კომპიუტერზე მაუსი და სმარტფონზე თითები სრულიად განსხვავებული მიდგომებია მომხმარებლის ინტერფეისის (ვიზიტორი, დეველოპერი) განხორციელებისთვის. ეს არის ბუნებრივი და თანამედროვე მოთხოვნა ჯვარედინი ბრაუზერის თავსებადობისთვის.
ეს ყველაფერი ერთად ართულებს გვერდების შექმნას, მაგრამ მასში „გადაათრიეთ და ჩამოშვების“ იდეის გამოყენება სტანდარტული ფორმამისი მოვლენების გამოყენებით, ამ იდეის შერწყმით ჩვეულებრივ მოვლენებთან ელემენტებზე, შეგიძლიათ განახორციელოთ მექანიზმი, რომელშიც გვერდის შექმნა ვიზუალურად მოხდება.
ახლა მოდით შევხედოთ ნივთის ან ნივთების შერჩევას. შერჩევის ფაქტი არის კონტექსტური მენიუს გამოჩენა, მაგალითად, მიზანია არჩეულის გასწორება (მარცხნივ, მარჯვნივ, ცენტრში), ან ელემენტების ვერტიკალურად ან ჰორიზონტალურად განაწილება იმავე ნაბიჯით, ან მათი ზომების შეცვლა (მინიმალური, მაქსიმალური) .
კოორდინატებისა და ზომების ავტომატური ხელახალი გაანგარიშება სასურველია ხელით ხელახლა გაანგარიშებაზე. ნაკლები შეცდომა - მიზანი უფრო სწრაფად მიიღწევა. გარდა ამისა, შეგიძლიათ გააკეთოთ გვერდი ერთ ბრაუზერში, შეინახოთ ელემენტების პოზიცია და ზომა. სმარტფონზე ამ გვერდის გახსნის შემდეგ, შეგიძლიათ შეასწოროთ კოორდინატების და ზომების მნიშვნელობები და დაიმახსოვროთ ისინი კონკრეტული მოდელისმარტფონის ან ბრაუზერის ვერსია.
ასე რომ, იმავე გვერდს ჯვარედინი ბრაუზერის მოთხოვნების მექანიკური შესრულების გარეშე ექნება სხვადასხვა მონაცემების ჩვენება სხვადასხვა მოწყობილობებიდა სხვადასხვა ბრაუზერებში.
თუ ვიზიტორს ნებას დართეთ, განახორციელოს ეს პროცედურები დამოუკიდებლად, ასევე შეარჩიოს გვერდის საჭირო ელემენტები დეველოპერის მიერ მოწოდებულიდან, შეგიძლიათ უზრუნველყოთ ბრაუზერის თავსებადობა და გვერდის საჭირო ფუნქციონირება, მომხმარებლის აზრის გათვალისწინებით. .
Drag and Drop ფუნქცია დაგეხმარებათ გაზარდოთ თქვენი 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-ის Drag-and-drop მექანიზმს, უმჯობესია გამორთოთ HTML5 ეკვივალენტები კონფლიქტების თავიდან ასაცილებლად. ამ მიზნით, დააყენეთ დოკუმენტის ძირითადი ელემენტის გადასატანი ატრიბუტი false-ზე.
გადასატანი ურთიერთქმედების კონფიგურაცია
არსებობს მრავალი პერსონალიზაციის ვარიანტი Draggable ურთიერთქმედებისთვის. ყველაზე მნიშვნელოვანი თვისებები, რომლებიც განხილულია შემდეგ თავებში, შეჯამებულია ქვემოთ მოცემულ ცხრილში:
საკუთრება | აღწერა |
---|---|
ღერძი | ზღუდავს მოძრაობას კონკრეტულ მიმართულებებზე. ნაგულისხმევი არის false, რაც არ ნიშნავს შეზღუდვებს, მაგრამ ასევე შეგიძლიათ მიუთითოთ მნიშვნელობა "x" (გადაადგილება მხოლოდ X ღერძის გასწვრივ) ან "y" (გადაადგილება მხოლოდ Y ღერძის გასწვრივ) |
შეკავება | ზღუდავს მცურავი ელემენტის პოზიციას ეკრანის კონკრეტულ არეალში. მხარდაჭერილი მნიშვნელობების ტიპები აღწერილია ქვემოთ მოცემულ ცხრილში, შესაბამისი მაგალითის გამოყენებით. ნაგულისხმევი არის false, რაც არ ნიშნავს შეზღუდვებს |
დაგვიანებით | ადგენს რამდენ ხანს უნდა გადაიტანოს ელემენტი გადაადგილებამდე. ნაგულისხმევი არის 0, რაც ნიშნავს, რომ არ არის დაგვიანება |
მანძილი | განსაზღვრავს მანძილს, რომელიც მომხმარებელმა უნდა გადაათრიოს ელემენტი საწყისი პოზიციიდან, სანამ ის რეალურად გადაადგილდება. ნაგულისხმევი არის 1 პიქსელი |
ბადე | აიძულებს გადატანილი ელემენტის მიბმას ბადის უჯრედებზე. ნაგულისხმევი არის false, რაც ნიშნავს, რომ არ არის სავალდებულო |
მოძრაობის მიმართულებების შეზღუდვა
არსებობს რამდენიმე გზა, რომლითაც შეგიძლიათ შეზღუდოთ ელემენტის მოძრაობა კონკრეტულ მიმართულებებზე. პირველი არის ღერძის ვარიანტის გამოყენება X ან Y ღერძზე მოძრაობის მიმართულების შესაზღუდად. მაგალითი ნაჩვენებია ქვემოთ:
...