رفتن به مطلب

کدی برای مخفی و ظاهر کردن یک منو به کمک اسکرول


پست های پیشنهاد شده

سلام یک سئوال جدید دارم یک کدی هست که یک جا های میزارن مثلا یک منو واسه بالای سایت میسازن خوب بعدش تا وقتی در بالای صفحه هستی دیده نمیشه ولی وقتی اسکرول میکشی پایین ظاهر میشن و باز که صفحه رو به وسیله اسکرول میدی بالا مخفی میشن کد اون میخواستم اگه امکانش هست.من خودم تا یکجای فهمیدم ولی کامل نه وقتی صفحه بالاست و اون منو نامرئی حالت display میره روی none یعنی به این شکل display:none ولی وقتی میای پایین و ظاهر میشه کد به این شکل در می آید display:block حالا این که باید چکار کنم که با بالا و پایین شدن اسکرول این اتفاق بیفته رو بلد نیستم و ممنون میشم اگه مثل همیشه کمک کنید همچنین پیشاپیش از پاسخ های شما سپاسگذارم.

لینک به ارسال

با JQuery باید انجام بدین. تابع ScrollTop این کار رو انجام میده. به عنوان مثال شما می تونید به این صورت بنویسید:


$(window).scroll(function () {
var $h = $(window).scrollTop();

if ( $h < 300 )
{
$('header').removeClass("x")
}
else {
$('header').addClass("y")
}

});

کاربر وقتی بیشتر از 300 پیکسل اسکرول کنه کلاس y اضافه میشه. وقتی بالاتر باشه کلاس x.

  • امتیاز 5
لینک به ارسال

با JQuery باید انجام بدین. تابع ScrollTop این کار رو انجام میده. به عنوان مثال شما می تونید به این صورت بنویسید:


$(window).scroll(function () {
var $h = $(window).scrollTop();

if ( $h < 300 )
{
$('header').removeClass("x")
}
else {
$('header').addClass("y")
}

});

کاربر وقتی بیشتر از 300 پیکسل اسکرول کنه کلاس y اضافه میشه. وقتی بالاتر باشه کلاس x.

دوست عزیز میشه یک مقدار توضیح بدی چجوریه؟

لینک به ارسال

دوست عزیز میشه یک مقدار توضیح بدی چجوریه؟

استاد فخار که لینک کامل از نمونه رو گذاشتن. بررسی کنید اگه به جواب نرسیدید سوال کنید.

  • امتیاز 2
لینک به ارسال

خوب اونی که آقا ایمان گذاشته چجوریه من خودم منو رو ساختم خوب فقط میخوام یک جوری باشه که با اسکرول بالا پایین بره همین از اون هیچی نفهمیدم یک جوری بود کلی کد داشته

خوب اونی که آقا ایمان گذاشته چجوریه من خودم منو رو ساختم خوب فقط میخوام یک جوری باشه که با اسکرول بالا پایین بره همین از اون هیچی نفهمیدم یک جوری بود کلی کد داشته

لینک به ارسال

استاد فخار که لینک کامل از نمونه رو گذاشتن. بررسی کنید اگه به جواب نرسیدید سوال کنید.

آقا فکر کنم از اون کدی که دادید یک چیزای در آوردم میشه بگید باید کد کجا قرار بدم چون توی Style.Css قرار میدم جواب نمیده :(

لینک به ارسال

کدی که فرمودند jquery است باید داخل تگ script قرار بگیره


<script>
$(window).scroll(function () {
var $h = $(window).scrollTop();
if ( $h < 300 )
{
$('header').removeClass("x")
}
else {
$('header').addClass("y")
}
});
</script>

می تونید در فایل footer.php بگذارید

  • امتیاز 4
لینک به ارسال

آقا من هرکار میکنم نمیشه :( اون منو رو توی هدر قرار دادم کد فراخونیش اینم اسم کلاسش fixedheader این کدی که دادید رو هم اونجا گذاشتم این کلاس هم گذاشتم ولی کار نکرد :( درضمن برای ناپدید شدنش گفتید یک کلاس دیگه تعریف کنم یعنی چجوری :(

لینک به ارسال

اگر می خواهید شبیه همون دموی توی لینک باشه کدهای همون رو در سایتتون قرار بدید اینقدر هم دردسر نکشید کد css و js هر دو مشخصند

  • امتیاز 1
لینک به ارسال

خوب آخه من الان کلی زمان گذاشتم و یکی طراحی کردم که خیلی هم قشنگ شده حیف واسه این قابلیت بیخیالش بشم اگه امکانش هست تر خدا کمک کنید اگه بخواید میتونم کداش هم بزارم تا راهنمای کنید.

لینک به ارسال

بفرمایید این کد استایل


.fixedheader { position:fixed; top:0; background:url("images/menu-bg.png") repeat 0 0; height:50px; z-index:1000; width:100%; padding:0 50px; display:none; }
.fixedheader ul { list-style:none; }
.fixedheader ul li { float:right; }
.fixedheader ul li a {
color: #FFFFFF;
height: 30px;
line-height: 50px;
margin: 13px 0 0 5px;
padding: 0 10px;
font: 0 10pt/55px 'Droid';
}
.fixedheader ul li a:hover { background-color: rgba(0, 0, 0, 0.1); border-radius:3px; padding-right:12px; margin-left:3px; }
.fixedheader ul li a.homelink { background:url('images/home.png') no-repeat 80px 2px; padding-right:35px; }
.fixedheader ul li a.homelink:hover { background-color:rgba(0, 0, 0, 0.1); background-position:97 2px; padding-right:37px; margin-left:3px; }
.fixedheader > ul.left { margin-left:90px; float:left }
.fixedheader > ul.left li a {
background: rgba(0, 0, 0, 0.1);
border-radius: 3px;
color: #FFFFFF;
height: 30px;
line-height: 50px;
margin: 13px 0 0 5px;
padding: 0 10px;
}
.fixedheader > ul.left li a:hover { background: rgba(0,0,0,0.2) }

اینم کدی که توی هدر برای فراخوانی قرار دادم


<div class="fixedheader" style="display: block;">
<ul>
<li><a class="homelink" href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php esc_html_e( 'صفحه اصلی' ); ?></a></li>
<li><a href="http://gamesource.ir/news/">اخبار</a></li>
<li><a href="http://gamesource.ir/article/">مقالات</a></li>
<li><a href="http://gamesource.ir/games/">بازی ها</a></li>
<li><a href="http://gamesource.ir/games-review/">نقد و بررسی بازی ها</a></li>
<li><a href="http://gamesource.ir/videos/">ویدئو ها</a></li>
<li><a href="http://gamesource.ir/pictures/">گالری تصاویر</a></li>
<li><a href="http://gamesource.ir/forum/">انجمن</a></li>
<li><a href="http://gamesource.ir/contact/">تماس با ما</a></li>
</ul>
<ul class="left">
<li><a href="http://gamesource.ir/register/">عضویت در سایت</a></li>
<li><a href="http://gamesource.ir/register/">وارد شوید</a></li>
</ul>
</div>

لینک به ارسال

خوب آقا مرتضی من همون کدای اونجا کلاسش عوض میکنم قرار میدم ولی نمیدونم چرا کار نمیکنه :(

لینک به ارسال

خوب آقا مرتضی من همون کدای اونجا کلاسش عوض میکنم قرار میدم ولی نمیدونم چرا کار نمیکنه :(

خوب کلاس را نباید تغییر بدید مگر اینکه در تمام کد اینکار را بکنید مثلا اگر bottomMenu را به nav تغییر دادید اسکریپت همباید تبدیل بشه به


$(document).scroll(function () {
var y = $(this).scrollTop();
if (y > 800) {
$('.nav').fadeIn();
} else {
$('.nav').fadeOut();
}
});

و همینطور کدهای css , html

  • امتیاز 2
لینک به ارسال

نه منظور منم همین بود که کلاس همین کد با کلاس css مچ کردم ولی کار نکرد من کدام قرار دادم میشه طبق همونا واسم درست کنید همین و بگید کجا قرار بدم خواهش میکنم اینکار بکنید خیلی واجبه پیشاپیش هم ممنون

لینک به ارسال

شما عوض کنید روی سایت بزارید تا راحتتر بشه بررسی کرد

خوب آقا مرتضی قالب قرار دادم حالا میشه لطفا بررسی کنید؟

http://gamesource.ir/

لینک به ارسال

بگردید دنبال


<!-- #main-header -->

و این کد را درست قبلش بگذارید


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.js"></script>
<script type="text/javascript">
<!--
$('.fixedheader').hide()
$(document).scroll(function () {
var y = $(this).scrollTop();
if (y > 800) {
$('.fixedheader').fadeIn(1000);
} else {
$('.fixedheader').fadeOut(1000);
}

});
//-->
</script>

در قالب شما ده ها بار جی کوئری و جاوا اسکریپتهای دیگر فراخوانی شدند بهتون پیشنهاد می کنم سایت را اینقدر سنگین نکنید

  • امتیاز 2
لینک به ارسال

آقا ایمان واقعا دمت گرم و دستت درد نکنه درست شد خیلی خیلی خیلی ممنونم واسه اون سنگین کردن اینا هم قالب من نساختم از الگانت خریدم و فکر کنم قالب های الگانت بالاترین استاندارد دارند و فکر نکنم مشکلی ایجاد بشه

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...