ekran boyutuna göre resim değişimi

cokyakinda

Pratik Üye
İYİNET Üyesi
Katılım
19 Haz 2012
Mesajlar
10
Beğeniler
0
Yaş
28
#1
istediğim kod:
1280 × 1024 ekran boyutuna sahip birisi siteye girdiği zaman hostta olan, 1280 × 1024 boyutunda arka plan resmi göstermesi.

2.olarakta 1600 × 1200 ekran boyutuna sahip biri girdiğinde aynı şekilde site ekran çözünürlüğünü algılayıp hosttaki 1600 × 1200.png yi arka plan yapmasını istiyorum bunun kodu varmı php den pek anlamıyorum ama en uygun burası diye düşündüm
 

Utip

Şen Üye
İYİNET Üyesi
Katılım
3 Nis 2012
Mesajlar
94
Beğeniler
0
#2
Merak ettim ve ufaktan bir araştırdım. Bu işi javascript yapıyormuş.
Aşağıdaki kodu bir php dosyasına atıp deneyebilirsin.


<script language="javascript">
if (window.location.search == "") {
window.location.href = window.location + "?width=" + screen.width + "&height=" + screen.height;
}
</script>

Sayfayı tekrar refresh etmen gerekiyor mu, yoksa ilk seferde yazıyor mu tam bilmiyorum denersin.

<?php
$width = $_GET['width'];
$height = $_GET['height'];

echo "kullanılan ekran boyutu".$width." X ".$height." boyutundadır";
// And set them into cookies as well.
?>

Öncelike araya yazdığım yazının da dahil olduğunu, eşantiyon olduğunu belirtmek isterim :) Hiç php bilgin yoksa, hosttaki resimlerini nasıl phpdeki verilerle beraber kullanabilirsin o konuda da yardımcı olurum.
 

cokyakinda

Pratik Üye
İYİNET Üyesi
Katılım
19 Haz 2012
Mesajlar
10
Beğeniler
0
Yaş
28
#3
teşekkürler ama tek sorun işte istediğim kod bunun %50 si geriye kalan tek şey ölçüyü aldıktan sonra arka plan resminin değişmesi. eğer yardımcı olursanız sevinirim
 

Utip

Şen Üye
İYİNET Üyesi
Katılım
3 Nis 2012
Mesajlar
94
Beğeniler
0
#4
Çözünürlük konusunda bir standart olmadığı için tam verim almak zor olsa da az çok iş görecek bir şey yapmak mümkün.
 

Utip

Şen Üye
İYİNET Üyesi
Katılım
3 Nis 2012
Mesajlar
94
Beğeniler
0
#5
arkafon####x###.jpg

# olan yerlere ekranın eni ve boyu arada da x gelecek şekilde bir kaç resim belirlersen. Aşağıdaki kod işini görür. Elindeki resimleştirmediğin ekran çözünürlükleri içinde sadece bir tane resim belirledim. Kayıtlı olmayan ekran çözünürlüklerinde sorun çıkarır sadece.


<script language="javascript">
if (window.location.search == "") {
window.location.href = window.location + "?width=" + screen.width + "&height=" + screen.height;
}
</script>


<?php
$width = $_GET['width'];
$height = $_GET['height'];

//resimlerin jpg değilse aşağıdakini değiştir. resimin aynı dizinde olduğunu düşünerek yazdım dizini de ayarlayabilirsin.
$dizin="./";
$dosya = $dizin."arkafon".$width."x".$height.".jpg";

//created by Utip


if (file_exists($dosya)) {
?>
<body background="<?echo $dosya;?>">
</body>
<?
} else {
//kayıtlılarda yoksa elle istediğini belirlersin.
?>
<body background="<?echo $dizin."arkafon1280x1024.jpg";?>">
</body>
<?
}
?>
 

cokyakinda

Pratik Üye
İYİNET Üyesi
Katılım
19 Haz 2012
Mesajlar
10
Beğeniler
0
Yaş
28
#6
Hms...

Öncelikle şunu belirteyim bu komutlardan herhangi biri sorun çıkarır mı hiç bilmem ama, bazı komutlar ille de headerda çalışırım, illede html açılmadan olsun diyebilir o yüzden bir kere boş bir dosyada dene. Bu güne kadar hiç html'ye girmeden bir komutun sorun çıkarığını görmedim. Çalışırsa ve senin sitenin istediğin yerinde çalışmazsa ben buradayım.

<script language="javascript">
if (window.location.search == "") {
window.location.href = window.location + "?width=" + screen.width + "&height=" + screen.height;
}
</script>


<?php
$width = $_GET['width'];
$height = $_GET['height'];

//created by Utip
//düşündüğün en küçük resim boyutu

if ($width>1024 and $height>768)
{

if ($width>1280 and $height>1024)
{
?>
<body background="arkafon1600x1200.jpg">
</body>
<?
}else
{
?>
<body background="arkafon1280x1024.jpg">
</body>
<?
}
}else
{
?>
<body background="arkafon1024x768.jpg">
</body>
<?
}
?>
kalın olan yeri tam anlayamadım yani ekranın ölçüsünü otomatik alıyor ve otomatik hosttaki resmi ekran boyutuna göre değiştiriyor ama burada 1 diye birşey yok yani hangisi hangisine uyuyor onu anlamadım. dediğim gibi php den javadan hiç anlamıyorum kullanımını kolay bir şekilde anlatablirsen sevinirim kardeş
 

Utip

Şen Üye
İYİNET Üyesi
Katılım
3 Nis 2012
Mesajlar
94
Beğeniler
0
#7
kalın olan yeri tam anlayamadım yani ekranın ölçüsünü otomatik alıyor ve otomatik hosttaki resmi ekran boyutuna göre değiştiriyor ama burada 1 diye birşey yok yani hangisi hangisine uyuyor onu anlamadım. dediğim gibi php den javadan hiç anlamıyorum kullanımını kolay bir şekilde anlatablirsen sevinirim kardeş
Senin soruna cevap verirken bir yandan da bir resmi parçalayıp bölüp işlem yapıyordum. Biraz ikisi birbirine karıştı bende. Sonra yeni bir tane yazdım daha sade, daha anlaşılır. Kafa karıştırmasın diye de silmiştim ilkini. Virgülünde noktalıvirgülünde bir hata yoksa sağlam çalışması lazım.

Aslında çok büyük bir resim ekleyip, hiç kayıtlı olmayan bir çözünürlük gelirse de " vay be böyle bir çözünürlük te varmıymış diyerek" o büyük resimden kırpıp, bir daha gelirlerse görüntülemek üzere hostuna da kayıt yapan program da yazılabilir... ... ... ... ...
 

cokyakinda

Pratik Üye
İYİNET Üyesi
Katılım
19 Haz 2012
Mesajlar
10
Beğeniler
0
Yaş
28
#8
kayıtlı olmayan değilde genel kullanılan tüm boyutlara göre arka plan resmi ayarlıcam tek tek. leptop ekranı, lcd ekranlar dahil. bunun javası yapılabilir ama paralı yaparlar sanırsam. 2.yolumuz şu olur arka planı tek tek ayrıntılı yapıcaz ozaman bi java yada html kodu vardı tam hatırlamıyorum ama internet penceresini küçültünce yazılar videolarda küçülüyordu o an, onun kodunu biliyormusunuz acaba.
 

metadige

Profesyonel Üye
İYİNET Üyesi
Katılım
23 Ara 2005
Mesajlar
354
Beğeniler
4
#9
arkadaşım php ye gerek yok bunun için javascript ile yapabilirsin basitçe:

PHP:
<html>
<head></head>
<body>
<div id="bgdiv" style="width:100%;height:100%"></div>
<script language="javascript">
var w = screen.width;
if(w==1920) document.getElementById("bgdiv").style.background = "url(1920x1080.png) center center no-repeat";//1920*1080
else if(w==1600) document.getElementById("bgdiv").style.background = "url(1600x1200.png) center center no-repeat";//1600*1200
else if(w==1280) document.getElementById("bgdiv").style.background = "url(1280x1024.png) center center no-repeat";//1280*1024
/* istediğin kadar arttır */
else document.getElementById("bgdiv").style.background = "url(1280x1024.png) center center no-repeat";//1280*1024

</script>
</body>
</html>
 

Bu konuyu okuyanlar (Üyeler: 1, Misafirler: 0)

Üst