Jsdom: إعداد js dom لـ getBoundingClientRect ()

تم إنشاؤها على ٢٥ أغسطس ٢٠١٦  ·  4تعليقات  ·  مصدر: jsdom/jsdom

screen shot 2016-08-25 at 4 57 33 pm

ربما يقوم شخص ما بإعداد jsdom التي تعمل مع getBoundingClientRect () ، وأنا أعمل مع simulantjs وسجّل وحدة التحكم الخاصة بي مرة أخرى->
screen shot 2016-08-25 at 5 03 42 pm

    const wrapper = mount(
      <Provider store={store}>
        <FullDecoratedBlock
          uid={'test'}
          setFocusedElement={setFocusedElement}/>
      </Provider>, {attachTo: document.getElementById('app')})
    expect(wrapper.find('.add-wrap').length).to.eql(0)
    simulant.fire(document.body.querySelector('.wrapper-resize-button'), 'mousedown')
    simulant.fire(document.body, 'mousemove', {target: {clientX: 51, clientY: 101}})

ربما شخص ما لديه أفكار ؟؟

التعليق الأكثر فائدة

يمكنك أن تفترض أن تعمل واجهة برمجة تطبيقات .getBoundingClientRect () ونفذ ما يلي:

const p = document.createElement('p')

    p.getBoundingClientRect = jest.fn(() => ({
      x: 851.671875,
      y: 200.046875,
      width: 8.34375,
      height: 17,
      top: 967.046875,
      right: 860.015625,
      bottom: 984.046875,
      left: 851.671875,
    }))

ال 4 كومينتر

لا أستطيع أن أفهم هذه المشكلة جيدًا. يبدو أنه ربما يكون خدعة # 1581 ، https://github.com/tmpvar/jsdom/issues/653 ، https://github.com/tmpvar/jsdom/issues/1322.

domenic لدي مكون ، عندما أقوم بتحريك الماوس إلى الجزء السفلي من المكون ، أنتظر أن يظهر المكون الخاص بي ، وهو يرتفع إلى const rect = node.getBoundingClientRect() ، ويحصل هذا المستقيم على إحداثيات الماوس ، وفي المكون اكتب const showPlusButton = event.insideX && Math.abs(event.pos.y - event.componentRect.bottom) <= MOUSE_DISTANCE عندما

لا يقوم jsdom بأي عرض ، لذا فإن getBoundingClientRect() تُرجع دائمًا 0،0،0،0. هذا لن يتغير (حتى على المدى الطويل المنظور). يمكنك محاولة السخرية من الوظيفة لمحاكاة النتائج التي تتوقعها. انظر أيضا # 653.

يمكنك أن تفترض أن تعمل واجهة برمجة تطبيقات .getBoundingClientRect () ونفذ ما يلي:

const p = document.createElement('p')

    p.getBoundingClientRect = jest.fn(() => ({
      x: 851.671875,
      y: 200.046875,
      width: 8.34375,
      height: 17,
      top: 967.046875,
      right: 860.015625,
      bottom: 984.046875,
      left: 851.671875,
    }))
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

kentmw picture kentmw  ·  3تعليقات

Progyan1997 picture Progyan1997  ·  3تعليقات

philipwalton picture philipwalton  ·  4تعليقات

camelaissani picture camelaissani  ·  4تعليقات

kilianc picture kilianc  ·  4تعليقات