Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » ://www » dropdown menüde çözünürlük sorunu.


Yanıt
 
LinkBack Seçenekler
Old 25.07.2004   #1 (permalink)
 
audace's Avatar
 
Üyelik Tarihi: 21.03.2003
Yer: istanbul
Yaş: 23
Mesaj: 209
dropdown menüde çözünürlük sorunu.


Şimdi şöyle bir sorun var..

Siteme banner'in altına aşağıya açılan bir menü koydum.. herşey çok güzel..

bir çok script araştırdım. içinden en güzel olarak bunu beğendim..

tek bir sorunu var. Aşağıda gördüğünüz kodlarda. X,Y koordinatları ile menünün yerini ayarlıyorsunuz..

fakat ayarlasanızda. sadece sizin ayar yaptığınız çözünürlükte normal çalışıyor. diğer çözünürlüklerde farklı farklı yerlerde çıkıyor..


Alıntı:
<SCRIPT language=javascript src="js/menu.js"></SCRIPT>
<script language=JavaScript>
new ypSlideOutMenu("menu1", "down", 215, 120, 180, 300)
new ypSlideOutMenu("menu2", "down", 375, 120, 180, 300)
new ypSlideOutMenu("menu3", "down", 560, 120, 180, 300)
new ypSlideOutMenu("menu4", "down", 500, 120, 180, 600)
//new ypSlideOutMenu("menu2", "left", 122, 92, 140, 65)
</script>
şimdi bazı arkadaşlar forumda ara diyecek, Google 'da başka script ara diyecek.

fakat ben neden böyle bir hata verdiğini öğrenemk istiorum. bilimsel bir açıklama yapabilecek olan varmı ?

her çözünürlüğün X,Y koordinatları aynı değilmidir?

teşekkürler.
audace şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 25.07.2004   #2 (permalink)
 
gameover's Avatar
 
Üyelik Tarihi: 24.07.2001
Yer: Istanbul
Yaş: 25
Mesaj: 800
Re: dropdown menüde çözünürlük sorunu.

ypSlideOutMenu'nün neye göre hizalama yaptığını söylersen daha bilimsel olabiliriz. ancak, parantez içinde verilen down'ların hizalamayı aşağıdan şu kadar pixel yukarı koy bu menüyü diyerek yaptığını varsayarak ortaya şöyle bir tez atabilirim: 800x600'e göre aşağıdan 100px yukarıya(!) konulacak bir obje o çözünürlüğe göre yukarıdan 500px aşağıda olacaktır. ancak 1024x768'e göre aynı obje yukarıdan 668px aşağıda olacaktır.

çözüm tezi olarak da down'ları top yapabilirsin (menünün çalışma mantığını bilmediğim için yanlış bir çözüm olabilir bu)

genel için de; bu tür hata nerede? mesajları atarken çözüme çabuk ulaşabilmek için gerekli tüm verileri buraya koyarsanız iyi olacaktır.
__________________
SiberKültür.com,
css'in hastası, web'in ustasıyız
gameover şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 25.07.2004   #3 (permalink)
 
audace's Avatar
 
Üyelik Tarihi: 21.03.2003
Yer: istanbul
Yaş: 23
Mesaj: 209
Re: dropdown menüde çözünürlük sorunu.

menu.js 'nin içeriği aşağıdaki gibidir.
Alıntı:
ypSlideOutMenu.Registry = []
ypSlideOutMenu.aniLen = 250
ypSlideOutMenu.hideDelay = 250
ypSlideOutMenu.minCPUResolution = 10

function ypSlideOutMenu(id, dir, left, top, width, height)
{
this.ie = document.all ? 1 : 0
this.ns4 = document.layers ? 1 : 0
this.dom = document.getElementById ? 1 : 0
if (this.ie || this.ns4 || this.dom) {
this.id = id
this.dir = dir
this.orientation = dir == "left" || dir == "right" ? "h" : "v"
this.dirType = dir == "right" || dir == "down" ? "-" : "+"
this.dim = this.orientation == "h" ? width : height
this.hideTimer = false
this.aniTimer = false
this.open = false
this.over = false
this.startTime = 0
this.gRef = "ypSlideOutMenu_"+id
eval(this.gRef+"=this")
ypSlideOutMenu.Registry[id] = this
var d = document
d.write('<style type="text/CSS">')
d.write('#' + this.id + 'Container { visibility:hidden; ')
d.write('left:' + left + 'px; ')
d.write('top:' + top + 'px; ')
d.write('overflow:hidden; }')
d.write('#' + this.id + 'Container, #' + this.id + 'Content { position:absolute; ')
d.write('width:' + width + 'px; ')
d.write('height:' + height + 'px; ')
d.write('clip:rect(0 ' + width + ' ' + height + ' 0); ')
d.write('}')
d.write('</style>')

this.load()
}
}

ypSlideOutMenu.prototype.load = function() {
var d = document
var lyrId1 = this.id + "Container"
var lyrId2 = this.id + "Content"
var obj1 = this.dom ? d.getElementById(lyrId1) : this.ie ? d.all[lyrId1] : d.layers[lyrId1]
if (obj1) var obj2 = this.ns4 ? obj1.layers[lyrId2] : this.ie ? d.all[lyrId2] : d.getElementById(lyrId2)
var temp

if (!obj1 || !obj2) window.setTimeout(this.gRef + ".load()", 100)
else {
this.container = obj1
this.menu = obj2
this.style = this.ns4 ? this.menu : this.menu.style
this.homePos = eval("0" + this.dirType + this.dim)
this.outPos = 0
this.accelConst = (this.outPos - this.homePos) / ypSlideOutMenu.aniLen / ypSlideOutMenu.aniLen

if (this.ns4) this.menu.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);
this.menu.onmouseover = new Function("ypSlideOutMenu.showMenu('" + this.id + "')")
this.menu.onmouseout = new Function("ypSlideOutMenu.hideMenu('" + this.id + "')")

this.endSlide()
}
}

ypSlideOutMenu.showMenu = function(id)
{
var reg = ypSlideOutMenu.Registry
var obj = ypSlideOutMenu.Registry[id]

if (obj.container) {
obj.over = true
for (menu in reg) if (id != menu) ypSlideOutMenu.hide(menu)
if (obj.hideTimer) { reg[id].hideTimer = window.clearTimeout(reg[id].hideTimer) }
if (!obj.open && !obj.aniTimer) reg[id].startSlide(true)
}
}

ypSlideOutMenu.hideMenu = function(id)
{
var obj = ypSlideOutMenu.Registry[id]
if (obj.container) {
if (obj.hideTimer) window.clearTimeout(obj.hideTimer)
obj.hideTimer = window.setTimeout("ypSlideOutMenu.hide('" + id + "')", ypSlideOutMenu.hideDelay);
}
}

ypSlideOutMenu.hide = function(id)
{
var obj = ypSlideOutMenu.Registry[id]
obj.over = false

if (obj.hideTimer) window.clearTimeout(obj.hideTimer)
obj.hideTimer = 0
if (obj.open && !obj.aniTimer) obj.startSlide(false)
}

ypSlideOutMenu.prototype.startSlide = function(open) {
this[open ? "onactivate" : "ondeactivate"]()
this.open = open
if (open) this.setVisibility(true)
this.startTime = (new Date()).getTime()
this.aniTimer = window.setInterval(this.gRef + ".slide()", ypSlideOutMenu.minCPUResolution)
}

ypSlideOutMenu.prototype.slide = function() {
var elapsed = (new Date()).getTime() - this.startTime
if (elapsed > ypSlideOutMenu.aniLen) this.endSlide()
else {
var d = Math.round(Math.pow(ypSlideOutMenu.aniLen-elapsed, 2) * this.accelConst)
if (this.open && this.dirType == "-") d = -d
else if (this.open && this.dirType == "+") d = -d
else if (!this.open && this.dirType == "-") d = -this.dim + d
else d = this.dim + d
this.moveTo(d)
}
}

ypSlideOutMenu.prototype.endSlide = function() {
this.aniTimer = window.clearTimeout(this.aniTimer)
this.moveTo(this.open ? this.outPos : this.homePos)
if (!this.open) this.setVisibility(false)
if ((this.open && !this.over) || (!this.open && this.over)) {
this.startSlide(this.over)
}
}

ypSlideOutMenu.prototype.setVisibility = function(bShow) {
var s = this.ns4 ? this.container : this.container.style
s.visibility = bShow ? "visible" : "hidden"
}
ypSlideOutMenu.prototype.moveTo = function(p) {
this.style[this.orientation == "h" ? "left" : "top"] = this.ns4 ? p : p + "px"
}
ypSlideOutMenu.prototype.getPos = function(c) {
return parseInt(this.style[c])
}
ypSlideOutMenu.prototype.onactivate=function() { }
ypSlideOutMenu.prototype.ondeactivate= function() { }

default.HTML ise şu şekilde ;
Alıntı:
<head>
<script language=JavaScript>
<!--
new ypSlideOutMenu("menu1", "down", 138, 47, 180, 300)
new ypSlideOutMenu("menu2", "down", 225, 47, 180, 300)
new ypSlideOutMenu("menu3", "down", 318, 47, 180, 300)
new ypSlideOutMenu("menu4", "down", 500, 47, 180, 600)
//new ypSlideOutMenu("menu2", "left", 122, 92, 140, 65)
//-->
</script>
</head>
menuyu koymak istediğimiz yere;
Alıntı:
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFCC00">
<tr align="center">
<td class="menu"><a onmouseover="ypSlideOutMenu.showMenu('menu1')" onmouseout="ypSlideOutMenu.hideMenu('menu1')" href="#">menu1</a></td>
<td class="menu"><a onmouseover="ypSlideOutMenu.showMenu('menu2')" onmouseout="ypSlideOutMenu.hideMenu('menu2')" href="#">menu2</a></td>
<td class="menu"><a onmouseover="ypSlideOutMenu.showMenu('menu3')" onmouseout="ypSlideOutMenu.hideMenu('menu3')" href="#"> menu3</a></td>
<td class="menu"><a href="/forum">forum</a>
</td>
</tr>
</table>
menunun üstüne gelince açılacak tablo ise;
Alıntı:
<div id=menu1Container>
<div id=menu1Content>
<table width="92" border="0" cellspacing="3" cellpadding="2" class="popmenu">
<tr>
<td bgcolor="FFE400"><a href="#">dneme</a></td>
</tr>
</table>
</div></div>
buyrun kodlar burdadır.

down 'larn hizalama ile ilgisi yok arkadaşım. Dediğin gibi down'ları top yaptım. sadece menunun açılma şekli değişti.yukardan aşağı doğru açıldı..

halen x,y mantksızlığı var.
audace şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 25.07.2004   #4 (permalink)
 
gameover's Avatar
 
Üyelik Tarihi: 24.07.2001
Yer: Istanbul
Yaş: 25
Mesaj: 800
Re: dropdown menüde çözünürlük sorunu.

sorun yok gibi?

800x600:

1024x768:

1152x864:

ek: kesitler browserın üstten ve soldan 0. pixelinden alındı.
Ekli Dosya(lar)
Dosya Uzantısı: gif 1024.gif (531 Bytes, 42 defa görüntülendi)
Dosya Uzantısı: gif 1152.gif (494 Bytes, 42 defa görüntülendi)
Dosya Uzantısı: gif 800600.gif (578 Bytes, 42 defa görüntülendi)
__________________
SiberKültür.com,
css'in hastası, web'in ustasıyız
gameover şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 29.07.2004   #5 (permalink)
 
Disobedient's Avatar
 
Üyelik Tarihi: 16.02.2001
Yer: Yalova
Yaş: 22
Mesaj: 258
Re: dropdown menüde çözünürlük sorunu.

ustat sendeki sorun bendede vardi ... smartmenus kullanıyordum...bendede X Y kordinat muhabbeti yuzunden istediğim yerden cıkmıyordu. o olayı su kod ile duzelttim

Kod:
 // SAMPLE FUNCTION USED FOR RELATIVE POSITIONING
function s_getStart(a){

var bodyStyleMarginTop=0;// specify manually to kill a bug in Opera 5/6

var o=document.images["getStart"];if(!o)return a=="x"?-630:0;

if(s_nS4)return a=="x"?o.x:o.y;
var oP,oC,ieW;oP=o.offsetParent;oC=a=="x"?o.offsetLeft:o.offsetTop;
ieW=s_iE&&!s_mC?1:0;
while(oP){if(ieW&&oP.tagName&&oP.tagName.toLowerCase()=="table"&&oP.border&&oP.border>0)oC++;oC+=a=="x"?oP.offsetLeft:oP.offsetTop;oP=oP.offsetParent};
if(s_kN31p&&!s_kN32p){return a=="x"?(document.body.style&&document.body.style.marginLeft?parseInt(document.body.style.marginLeft)+oC:document.body.marginWidth?parseInt(document.body.marginWidth)+oC:document.body.leftMargin?parseInt(document.body.leftMargin)+oC:oC+10):(document.body.style&&document.body.style.marginTop?parseInt(document.body.style.marginTop)+oC:document.body.marginHeight?parseInt(document.body.marginHeight)+oC:document.body.topMargin?parseInt(document.body.topMargin)+oC:oC+10)};
return s_oP7m?a=="x"?oC:oC+bodyStyleMarginTop:s_iE5M?a=="x"?oC+parseInt(document.body.currentStyle.marginLeft):oC+parseInt(document.body.currentStyle.marginTop):oC};
/*
 All browsers have problems with finding the real position of an
 element on the page in certain cases. I have tried to go round some
 browser bugs with the above function- that's why it's so long & complex.
*/
// SAMPLE FUNCTION USED FOR RELATIVE POSITIONING
pixel yazdıgın yere ise kordinat için

Top : s_getStart("y")
Left : s_getStart("x")

yazmalısın...

eğer yine istediğin gibi olmazsa s_getStart("x")+15 veya s_getStart("x")-15 gibi duzeltmeler yapabilirisn..

umarım yardımcı olmusumdur
__________________
Hayat ,Uzun Bir Sessizlikle Başladı
Dark Tranquillity T.R | Turkish Fan Club
Disobedient şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Sponsorlu Bağlantılar
Zoque.Forum
Reklam
Yanıt

Etiketler

sorunu , cozunurluk , menude , dropdown


 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama araniyor ariyorum ariyoruz asp bilen bilgi bilgisayar blog calisma canon css dijital div domain dosya eleman film firefox flash font form forum fotograf freelance google gore grafik grafiker hakkinda hangi hata hatasi hosting html ilgili ilk image internet istanbul istiyorum java javascript karakter kayit kisisel kullanimi link logo mac mail menu muzik mysql nasil neden nedir online photoshop php problemi program programi reklam resim satilik sayfa script server ses sistemi site sitesi son soru sorun sorunsali sorunu sql swf tasarim tasarimci tasarimcisi tasarimi turk turkce veri video web windows wordpress xml yardim yazi yeni zoque
Zoque RSS Aboneliği
Son eklenen konuları e-posta ile haber verelim mi?

Forum Yazılımı: vBulletin® Version 3.7.4 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2008
Forum Saati GMT +2. Şu anda saat: 10:39.