在元素的右下角點擊並按住調整大小圖像,不斷調整元素大小的最佳方法是什麼?是否有一個特定的空元素,內置調整大小或使用的樣式比在JavaScript中使用while循環更好?用鼠標不斷調整元素大小的最佳方式是什麼?
0
A
回答
0
一般的處理方法是這樣的東西:
- 當onmousedown事件在調整大小的目標大火,開始跟蹤的OnMouseMove
- 當的OnMouseMove火災,調整元件
- 當onmouseup火災,清除的OnMouseMove處理程序
所以基本上你只是迴應事件,沒有while循環或任何涉及。
完成它可能有點棘手,所以我會建議看看是否有JS庫可以使用。一個非常簡單的方式來獲得這種行爲是使用jQuery UI's resizable component
3
在這裏你去人:
function c(a){console.log(a)}
function coords(el){
var curleft, curtop;
curleft=curtop=0;
do{
curleft+=el.offsetLeft;
curtop+=el.offsetTop;
} while(el=el.offsetParent);
return [curleft,curtop];
}
Resizer = {
attach: function(el,minh,minw){
var rs=el.resizer=el.getElementsByClassName('drag')[0];
rs.resizeParent=el;
if(minh==undefined){
el.minh=rs.offsetHeight*2;
}
if(minw==undefined){
el.minw=rs.offsetWidth*2;
}
rs.onmousedown = Resizer.begin;
},
begin: function(e){
var el=Resizer.el=this.resizeParent;
var e=e||window.event;
this.lastx=e.clientX;
this.lasty=e.clientY;
document.onmousemove=Resizer.resize;
document.onmouseup=Resizer.end;
return false;
},
resize: function(e){
var e = e || window.event;
var x,y,mx,my,el,rs,neww,newh;
el=Resizer.el;
rs=el.resizer;
mx=e.clientX;
my=e.clientY;
neww=(el.clientWidth-(rs.lastx-mx));
newh=(el.clientHeight-(rs.lasty-my));
if(neww>=el.minw){
el.style.width=neww+'px';
rs.lastx=mx;
}
else{
rs.lastx-=parseInt(el.style.width)-el.minw;
el.style.width=el.minw+'px';
}
if(newh>=el.minh){
el.style.height=newh+'px';
rs.lasty=my;
}
else{
rs.lasty-=parseInt(el.style.height)-el.minh;
el.style.height=el.minh+'px';
}
return false;
},
end: function(){
document.onmouseup=null;
document.onmousemove=null;
}
};
window.onload=function(){
Resizer.attach(document.getElementsByClassName('resize')[0]);
}
你的HTML需要的樣子:
<div class="resize"><
div class="drag"></div>
</div>
無論一個需要成爲div,但可調整大小的類需要「調整大小」,可拖動元素的類需要「拖動」。
Resizer.attach(element);
...其中元素將被調整的一個:
與安裝它。
適用於多個元素,如jsfiddle所示。您還可以傳入最小高度和最小寬度。如果你不這樣做,它會自動使它們成爲可拖動元素高度的兩倍。
目前確實有一個問題,當你滾動一路下來。我不確定如何反擊它,但我會在更晚的時候處理它。
+0
我認爲你很好地回答了你的回答,但是我正在尋找一種更簡單的方法,所以我發現的最好的方法是使用resize:CSS聲明或者使用前面的評論者說的onmousedown和onmousemove。 – Ethan722
相關問題
- 1. 什麼是動態調整圖像大小的最佳方式?
- 2. 在調整大小的Silverlight畫布中調整所有元素的最佳方式是什麼?
- 3. 使用鼠標創建地圖的最佳方式是什麼?
- 4. 調整圖像大小而不損失質量的最佳方法是什麼?
- 5. QT:用鼠標調整UI元素大小
- 6. 將鼠標置於表單上的最佳方式是什麼?
- 7. 元素調整大小後的jQuery鼠標事件
- 8. In react使用鼠標調整元素大小,使用渲染函數實現或直接更改div寬度和高度的最佳方法是什麼?
- 9. 是否可以使用鼠標滾輪來調整元素的字體大小?
- 10. 在Windows中調整位圖大小的最佳方法是什麼?
- 11. 使用鼠標調整QGraphicsItem的大小
- 12. 什麼是縮小大量文本的最佳方式?
- 13. 定位標題元素的最佳方法是什麼?
- 14. 什麼是調整當地時區的最佳方式?
- 15. 調整Foursquare API搜索查詢的最佳方式是什麼?
- 16. 調整大小的元素
- 17. 元素的調整大小
- 18. 在html表單中使用標籤元素的最佳方式是什麼?
- 19. 爲什麼我的Jquery元素不能調整大小?
- 20. Swift:配對元素的最佳方式是什麼
- 21. 什麼是測試DOM中元素的最佳方式
- 22. ContentEditable圖像在Chrome中調整大小,什麼是最佳解決方案?
- 23. 開發可調整大小的小部件的最佳做法是什麼?
- 24. 有什麼方法可以用鼠標拖拽/調整畫布的大小?
- 25. 什麼是MySQL的最佳varchar大小?
- 26. javascript用鼠標調整大小
- 27. 什麼是存儲元標籤的最佳方式?
- 28. 將html元素大小調整爲最大瀏覽器大小
- 29. 調整窗口上的html元素的大小調整大小
- 30. 使用jQuery更改鼠標點擊文本的最佳方式是什麼?
感謝您的建議。 – Ethan722
我想知道,如果我使用onmousedown,然後與jQuery一起移動,所以我可以選擇一個處理多個元素的特定類,但是一次只能處理該類中的一個元素,這仍然可行嗎? – Ethan722
如果你的意思是事件代表團,那麼是的,我認爲它應該工作 –