PDA

View Full Version : سوال: تشخیص موقعیت اسکرول بعد از تغییر مکان آن



alismith
چهارشنبه 31 فروردین 1390, 11:10 صبح
سلام

من می خوام هر وقت اسکرول به سمت بالا یا پایین حرکت کرد مثلا اون عدد رو که موقعیت اسکرول رو (فاصله اون به بالای صفحه رو) نشون میده بریزیم تو یه متغییر و این کار با هر بار تغییر در موقعیت اسکرول انجام بشه؟

اگه کسی می تونه جواب بده.


با تشکر

hossin.esm
چهارشنبه 31 فروردین 1390, 15:46 عصر
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
body{height:1000px;}
</style>
<script src="jquery-1.4.2.min.js"></script>
</head>
<body>
<p id="p" style="position:absolute;top:20px;"> </p>
<script>
var top;
$(window).scroll(function () {
top=$(this).scrollTop();
$("#p").html("scrollTop:"+top);
$("#p").offset({top:top+10});
});


</script>

</body>
</html>

alismith
چهارشنبه 31 فروردین 1390, 18:20 عصر
سلام
آقا این کد خیلی عالیه اما نمی دونم چرا تو opera و chrome کار نمی کنه اگه میشه یه بررسی بکنید، چون این کد واقعا خوب بود
راستی میشه کاری کرد که p همیشه بالا بمونه؟
خیلی ممنون

hossin.esm
چهارشنبه 31 فروردین 1390, 19:21 عصر
سلام
آقا این کد خیلی عالیه اما نمی دونم چرا تو opera و chrome کار نمی کنه اگه میشه یه بررسی بکنید، چون این کد واقعا خوب بود

دلیلش نام متغییر بود (top)


var sctop;
$(window).scroll(function () {
sctop=$(this).scrollTop();
$("#p").html("scrollTop:"+sctop);
$("#p").offset({top:sctop});
});




راستی میشه کاری کرد که p همیشه بالا بمونه؟

p در حال حاظر همیشه بالاست

alismith
چهارشنبه 31 فروردین 1390, 19:44 عصر
p در حال حاظر همیشه بالاست

حق با شماست اما اگه دقت کرده باشید وقتی مثلا کل طول صفحه رو طی می کنیم و بعد که می خوایم با اسکرول به بالا برگردیم ، اگه سریع این کار رو انجام بدیم این تگ ما جا می مونه.
(البته این قضیه فقط تو فایرفاکس اتفاق می افته)
خیلی ممنون بابت توجه شما

hossin.esm
چهارشنبه 31 فروردین 1390, 20:48 عصر
برای این که یک ایتم ثابت داشته باشیم بهتر هست از css استفاده کنیم
position:fixed
البته توی IE6 جواب نمیده و برای حل این مشکل لینک زیر را ببینید
http://www.bennadel.com/blog/1735-Using-CSS-Fixed-Position-Elements-Across-Browsers-Without-Javascript.htm

samo1025
چهارشنبه 14 اردیبهشت 1390, 13:43 عصر
سلام
من یک پنل دارم که می خوام اگر کاربر کل محتویات پنل رو اسکرول کرد و خوند، یک دکمه فعال بشه. در واقع باید تشخیص داده بشه که آیا کل متن اسکرول و خوانده شده یا نه. کد بالا رو دیدم اما زیاد متوجه نشدم باید چکار کنم. کسی می تونه راهنمایی کنه؟
برنامه رو با C# نوشته ام و تحت وب هستش.

ممنون می شم.

alismith
جمعه 16 اردیبهشت 1390, 13:31 عصر
سلام دوست عزیز اول اینکه لطف کنید برای هر مبحث یا سوال یه تاپیک ایجاد کنید ،
اما برای حل مشکلتون من فکر کنم با مقایسه مقدار متغییر sctop بتونید به جواب برسید فقط کافیه خودتون با مقایسه مقدار به دست آمده از این متغییر در مرورگر های مختلف یک عدد تخمینی را جواب شرط قرار دهید
مثلا sctop >= 200 شد button = visible شود در اینجا طول صفحه 1000px بود.

موفق باشید