ממשק גרירה תומר עברית (rtl)
-
מחפש ממשק גרירה (שניתן לגרור אלמנט מאזור אחד לשני כולל אפשרות מיון מובנית) מבוסס אנגולר.
מצאתי את זה
https://material.angular.io/cdk/drag-drop/overview
שהוא ממש יפה, אבל לצערי כאשר<html lang="en" dir="rtl">הוא מתחרבש עם האנימציה של הגרירה.
ניסיתי כמה טלאים של CSS וכדומה אבל ללא הצלחה.
שאלותי הם:
א. האם יש למישהו ניסיון עם הממשק הספציפי הזה?
ב. האם יש אולי ממשק אחר שתומך ב-rtl?
נ.ב. בדקתי גם את זה
https://primeng.org/dragdrop
אבל הוא לא עונה על הדרישות של מיון .
השאלות הם -
פעם כתבתי קומפוננטה כזו, אני שם את הקוד כאן בלי אחריות
onDragStart(event: any, data: any) { event.dataTransfer.setData('id', data.id); } onDragLeave(event: any) { event.path[0].id = "" } onDragEnter(event: any) { event.path[0].id = "on-drag" } allowDrop(event: any) { event.preventDefault(); } onDrop(event: any, target: any) { event.path[0].id = "" let movedId = event.dataTransfer.getData('id'); event.preventDefault(); let oldIndex = this.plstService.activeList?.items?.findIndex(item => item.id == movedId); let newIndex = this.plstService.activeList?.items?.findIndex(item => item.id == target.id); // console.log("newIndex", newIndex, "oldIndex", oldIndex) if (oldIndex! > newIndex!) ++newIndex!; console.log("newIndex", newIndex, "oldIndex", oldIndex) if (oldIndex == newIndex) return; this.arrayMove(this.plstService.activeList?.items, oldIndex, newIndex) this.plstService.storeLists() } arrayMove(arr: any, oldIndex: any, newIndex: any) { arr.splice(newIndex, 0, arr.splice(oldIndex, 1)[0]); };.drag{ cursor: move; /* height: 20px; background: #5f5f5f; width: 97%; */ } .drop{ position: absolute; left: 0; top: 0; z-index: 8; height: 78%; width: 10px; } .drop#on-drag{ background-color: #ffffff; box-shadow: 0 0 10px 3px #fff; }<div class="item-container"> <div class="item" *ngFor="let item of plstService.activeList.items"> <div class="drag" draggable="true" (dragstart)="onDragStart($event, item)"> <i class="fas fa-arrows-alt"></i> </div> <a>{{item.title}}</a> <div class="drop" (drop)="onDrop($event, item)" (dragover)="allowDrop($event)" (dragenter)="onDragEnter($event)" (dragleave)="onDragLeave($event)"> </div> </div> </div> -
לאחר בדיקות שונות התברר לי שהייתי פשוט צריך לעדכן את האנגולר (ובכללו את ה-cdk) לגרסה 18,
ואז זה
https://material.angular.io/cdk/drag-drop/overview
עובד out of the box.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות