رفتن به مطلب

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


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

سلام یک سئوال جدید دارم یک کدی هست که یک جا های میزارن مثلا یک منو واسه بالای سایت میسازن خوب بعدش تا وقتی در بالای صفحه هستی دیده نمیشه ولی وقتی اسکرول میکشی پایین ظاهر میشن و باز که صفحه رو به وسیله اسکرول میدی بالا مخفی میشن کد اون میخواستم اگه امکانش هست.من خودم تا یکجای فهمیدم ولی کامل نه وقتی صفحه بالاست و اون منو نامرئی حالت 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.

لینک به ارسال

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


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

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

});

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

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

لینک به ارسال

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

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

لینک به ارسال

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

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

لینک به ارسال

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

آقا فکر کنم از اون کدی که دادید یک چیزای در آوردم میشه بگید باید کد کجا قرار بدم چون توی 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 بگذارید

لینک به ارسال

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

لینک به ارسال

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

لینک به ارسال

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

لینک به ارسال

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


.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

لینک به ارسال

نه منظور منم همین بود که کلاس همین کد با کلاس 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>

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

لینک به ارسال

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

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...