Ekranımda iki tane yukarıda ve ikide yer alan dört adet canvas
var.HTML offsetKullanılacak gecikmeler
Her birinin tuvali büyütmeyi, diğerlerini gizlemeyi sağlayan bir düğme vardır.
Bu düğme, tuvalin üzerinde offsetTop
ve offsetLeft
tabanlı mutlak konumla, her tuvalin üzerine yerleştirilmiştir. Bir tuvale büyütür veya küçültürken, düğme formülü yalnızca width
özelliğini günceller.
Garip olan şu ki, resize
işlevini de çağıran ekranı yeniden boyutlandırırsam, her şey doğru yere gider.
DÜZENLEME: ek bilgiler: Başka tuval gizlemek amacıyla, VueJS kullanarak ve am, ben uygulamak v-show="false"
sadece ebeveyn divs
, onlara karşı display: none
geçerlidir.
Bazı parçacıkları:
İlk boyutlandırma ve dinleyici:
window.onload = function() {
resizeAll();
window.addEventListener('resize', resizeAll, false);
};
boyutlandırma göbek:
function resizeAll() {
vue.$refs.panelOne.resizeDefault();
// ...
vue.$refs.panelN.resizeDefault();
}
panelin yeniden boyutlandırma varsayılan ve yöntemi yeniden boyutlandırmak. propagandasıyla birlikte yatıyor
Ben SPHINX katılıyorumfunction getScreenDimensions() {
return {
width: window.innerWidth - 310,
height: window.innerHeight * 0.92
};
}
function getHalfScreenDimensions() {
return {
width: (window.innerWidth - 310)/2,
height: (window.innerHeight * 0.92)/2
};
}
Büyük olasılıkla, tüm snippet'i eklemek, böylece insanların size yardımcı olabileceği anlamına gelir. Snippet'iniz Vue'dan ayrılamıyorsa, https://codesandbox.io/s/vue – deathangel908
kullanabilirsiniz. Tuvalinizi yeniden boyutlandırmayı deneyin ve bir sonraki düğmeyi yeniden çizmeyi deneyin. Düğmenizi yeniden çizdiğinizde tuvalin ofsetTop ve Sol değerleri güncellenmeyebilir. Çalışmaya devam etmezse, setTimeOut kullanın. –
Diğer snippet'ler eklendi. Temel olarak setTimeout uygulanarak çalışır. Ancak, daha basit bir çözüm seçmek isterim. Başka hiçbir şey işe yaramıyorsa, cevabı kabul etmekten memnuniyet duyarım. – Luiz