Kategoriler
JS

JavaScript ile yapışkan nesne oluşturmak

Bir çok web sitede kaydırma çubuğunu aşağı çektikçe bazı nesnelerin üste sabit durduğunu görürsünüz. Bu işlemin mantığı kaydırma çubuğunu belirli bir seviyeye geldiğinde nesne pozisyonu sabit kalır. Bunu javascript ile yapabilirsiniz. Bu işlemi iki türlü yapabilirsiniz. Birincisi, objeye style değeri vermek. İkincisi, class atamak.

Birinci yöntem;

[code]<div id=”sticky”></div>
<script>
window.onscroll = function() {
var nesne = document.getElementById(“sticky”);
var sticky = nesne.offsetTop;
if (window.pageYOffset > sticky) {
nesne.style.position = “fixed”;
} else {
nesne.style.position = “”;
}
}
</script>[/code]

İkinci yöntem;

[code]<style>
.sticky {
position: fixed;
top: 0px
}
</style>
<script>
window.onscroll = function() {
var nesne = document.getElementById(“myHeader”);
var sticky = nesne.offsetTop;
if (window.pageYOffset > sticky) {
nesne.classList.add(“sticky”);
} else {
nesne.classList.remove(“sticky”);
}
}
</script>[/code]

Her iki yöntemde de dikkat edilmesi gereken bir husus var. “sticky” nesnesi sabitlendiği zaman; “sticky” nesnenin sonrasındaki nesne, “sticky” nesnenin yüksekliği kadar altında kalır. Bu yüzden, “sticky” nesnesi sabitlendiğinde, “sticky” nesnenin sonrasındaki nesnenin padding veya margin değeri (“sticky” nesnenin yüksekliğinden biraz fazla) vermek gerekiyor.

Kategoriler
CSS

CSS ile yapışkan nesne oluşturmak

Bir çok web sitede kaydırma çubuğunu aşağı çektikçe bazı nesnelerin üste sabit durduğunu görürsünüz. Bu işlemin mantığı kaydırma çubuğunu belirli bir seviyeye geldiğinde nesne pozisyonu sabit kalır. Bunu javascript ile yapabileceğiniz gibi css ile çok basit bir şekilde yapabilirsiniz. Bu işlem için CSS’in olanak sağladığı sticky elemanı ile yapabilirsiniz.

Yapışkan özelliğe sahip olmasını istediğiniz nesneye position özelliğine sticky değeri vermeniz yeterlidir;

[code]<style>
.sticky {
position: sticky;
top: 0;
background-color: green;
padding: 50px;
font-size: 25px;
}
</style>
<div class=”sticky”>Kaydırma pozisyonuna ulaştığınızda ekrana yapışacak olan nesne</div>[/code]