2017-08-04 92 views
11

Yeniden boyutlandırılabilir bir div var. Yeniden boyutlandırmaya çalışırken, iE ve Edge'de bulunmama rağmen tüm sayfa mavi renkle seçiliyor. Web'de gösterilen birçok çözümü denedim ama hiçbir şey işe yaramadı. Aşağıda benim kodum. Fare hareketinde olaya göre varsayılan eylemi engelleyemiyorum. Fare hareket olayında ownerDocument dinliyorum. krom ve mozillaevt.preventDefault, fare hareket olayında IE ve Edge'de çalışmıyor, hatta evt.returnValue = false; ama yayılmayı durdurmak için çalışmadı

ben evt değişkeni inceleyerek konsolda gördüğümüz beklendiği gibi durma yayılma durdurma yayılma varsayılan yanlıştır önlemek sonra varsayılan doğrudur önlemek önce Kodun altında

, çalışıyor. Sorun sayfa ile seçilmiş olur olduğunu ise

if (event.preventDefault){ 
    event.preventDefault(); 
} 
else { 
    event.returnValue = false; 
} 

cevap

5

yerine evt.preventDefault yapma(); Fare hamlede kendisi

private MouseDown(evt: any) { 
     this.viewState.resizing = true; 
     const {ownerDocument} = ReactDOM.findDOMNode(this); 
     evt.preventDefault(); 
     evt.stopPropagation(); 
     ownerDocument.addEventListener('mousemove', this.MouseMove); 
     ownerDocument.addEventListener('mouseup', this.MouseUp); 

     this.setState(this.viewState); 
    } 
1

bu desen deneyin:

Kod tepki

tam sayfa seçilmiş oluyor neden google kromlar davranış olarak aynı ama hala alamadım mavi renk, seçimi önlemek için başka bir yaklaşım var.

bu deneyin:

<body onselectstart="return false"> 
+0

Hiç iş ben de fare hareketi fonksiyonu – Labeo

2

:

<div className="resizer" 
     tabIndex={-1} 
     onMouseDown={this.MouseDown} 
/> 


private MouseDown(evt: any) { 
     this.viewState.resizing = true; 
     const {ownerDocument} = ReactDOM.findDOMNode(this); 
     ownerDocument.addEventListener('mousemove', this.MouseMove); 
     ownerDocument.addEventListener('mouseup', this.MouseUp); 

     this.setState(this.viewState); 
    } 

private MouseMove(evt) { 
     this.viewState.width = width; 
     this.viewState.height = height; 


     if (evt.preventDefault) { 
      evt.returnValue = false; 
      evt.preventDefault(); 
     } 
     else { 
      evt.cancelBubble = true; 
     } 


     this.setState(this.viewState); 
    } 
+0

yanlış dönüşü eklemiş etkinliği tıklayın/mousedown bunu yapmak Ama tamamen bu işlevselliği kaldırmak yakamazlar. Burada sadece işlevselliği sadece div öğesini yeniden boyutlandırırken engellemek istiyoruz. – Labeo

+0

Bu yaklaşımı 'addEventListener' ve' removeEventListener'? 'I kullanarak denediniz mi? Etkileşim "onDragEnd" veya "onMouseUp" gibi bittiğinde bir "onDragStart" veya "onMouseDown" olayları ve diğer etkinlikleriniz olduğunu tahmin ediyorum. Deneyebileceğiniz başka bir alternatif ise GreenSock'un Sürüklenebilir aracıdır https://greensock.com/draggable – Rodrigo