דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ממשק גרירה תומר עברית (rtl)

ממשק גרירה תומר עברית (rtl)

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 2 כותבים 610 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • joshJ
    joshJ
    josh
    כתב ב נערך לאחרונה על ידי
    #1

    מחפש ממשק גרירה (שניתן לגרור אלמנט מאזור אחד לשני כולל אפשרות מיון מובנית) מבוסס אנגולר.
    מצאתי את זה
    https://material.angular.io/cdk/drag-drop/overview
    שהוא ממש יפה, אבל לצערי כאשר

    <html lang="en" dir="rtl">
    

    הוא מתחרבש עם האנימציה של הגרירה.
    ניסיתי כמה טלאים של CSS וכדומה אבל ללא הצלחה.
    שאלותי הם:
    א. האם יש למישהו ניסיון עם הממשק הספציפי הזה?
    ב. האם יש אולי ממשק אחר שתומך ב-rtl?
    נ.ב. בדקתי גם את זה
    https://primeng.org/dragdrop
    אבל הוא לא עונה על הדרישות של מיון .
    השאלות הם

    תגובה 1 תגובה אחרונה
    0
    • י
      י
      יוסף בן שמעון
      כתב ב נערך לאחרונה על ידי
      #2

      פעם כתבתי קומפוננטה כזו, אני שם את הקוד כאן בלי אחריות

          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>
      
      
      תגובה 1 תגובה אחרונה
      8
      • joshJ
        joshJ
        josh
        כתב ב נערך לאחרונה על ידי
        #3

        לאחר בדיקות שונות התברר לי שהייתי פשוט צריך לעדכן את האנגולר (ובכללו את ה-cdk) לגרסה 18,
        ואז זה
        https://material.angular.io/cdk/drag-drop/overview
        עובד out of the box.

        תגובה 1 תגובה אחרונה
        4

        שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

        נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

        בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

        הרשמה התחברות
        תגובה
        • תגובה כנושא
        התחברו כדי לפרסם תגובה
        • מהישן לחדש
        • מהחדש לישן
        • הכי הרבה הצבעות


        בא תתחבר לדף היומי!
        • התחברות

        • אין לך חשבון עדיין? הרשמה

        • התחברו או הירשמו כדי לחפש.
        • פוסט ראשון
          פוסט אחרון
        0
        • דף הבית
        • קטגוריות
        • פוסטים אחרונים
        • משתמשים
        • חיפוש
        • חוקי הפורום