سلام
:31:
من کدی میخواستم جاوا یا هرچی که زمانی صفحه داره لود میشه هرچی لایه که نام اونها عدد هست و از عدد 1 تا 10 رو ببنده یا نمایش نده یا محو کنه :31:
Printable View
سلام
:31:
من کدی میخواستم جاوا یا هرچی که زمانی صفحه داره لود میشه هرچی لایه که نام اونها عدد هست و از عدد 1 تا 10 رو ببنده یا نمایش نده یا محو کنه :31:
کسی نبود؟ :31:
تشکر//
استفاده از عدد برای نام درست نیست و تو بعضی مرورگر ها کار نمیکنه.
بعد چرا میخوای اون لایه ها رو نشون بدی که مجبور شی غیبشون کنی؟ از همون اول یه کلاس css به همه لایه ها بده و با display:none غیبشون کن. هر موقع هم که لازم شد اونا رو نشون بدی میتونی با کمک آی دی یا نام تگ بهش استایل بدی و کلاس رو خنثی کنی:
[html]
document.getElementById('layer_id').style.display = 'block';
[/html]
ممنوننقل قول:
از همون اول یه کلاس css به همه لایه ها بده و با display:none غیبشون کن.
میشه بگی چطور؟ :31:
اول یک کلاس CSS تعریف کن:
[html]
<style type="text/css">
.hide-this {
display:none;
}
</style>
[/html]
بر فرض لایه ها رو با div مشخص کنیم. به همه div ها کلاس بالا رو اختصاص بده + یک id که بعداً راحت بشه باهاشون کار کرد (id باید منحصر به فرد باشه):
[html]
<div id="layer_1" class="hide-this">
محتویات لایه
</div>
[/html]
حالا دیگه هیچکدومشون نشون داده نمیشه. فقط هروقت خواستی یه لایه مشخص رو نمایش بدی کافیه این دستور جاوا اسکرپت رو ارا کنی:
[html]
document.getElementById('layer_1').style.display = 'block';
[/html]
برای اجرا شدنش هم میتونی از رویدادهای html مثلاً onclick استفاده کنی
:31: بازم مرسی
بدون کلاس نمیشه؟
اصلا یه کد که هرچی لایه هست رو کلا بزنه ببنده :31: ؟؟؟ :31:
یا کدی نیست که خود به خود به تمام لایه ها کلاس بده؟:31:
تشکر//
بدون کلاس هم میشه اما دردسرش بیشتره.
دو تا راه به ذهنم میرسه اینکه بعد از لود شدن صفحه با جاوا اسکرپت لایه ها رو ناپدید کنیم (برعکس همون کدی که برای نمایش دادنشون تو پست قبلیم دادم) که روش جالبی نیست چون باعث میش اول همه محتویات لایه نمایش داده بشه بعد یهو همش ناپدید بشه!
روش دوم هم اینجوریه که اون کلاس رو با جاوا اسکرپت تعریف کنیم! که خوب لقمه رو دور سر چرخوندنه!
برای پیدا کردن همه لایه ها باید براشون یه مشخصه در نظر بگیری که با بقیه المنتهای صفحه قاطی نشه مثلاً همون کلاس رو میتونی استفاده کنی. اینجوری میشه همه لایه ها رو با جاوا اسکرپت پیدا کرد:
[html]
<script type="text/javascript">
var DIVs = document.getElementsByTagName('div');
for (i=0; i<DIVs.length; i++) {
if (DIVs[i].className == 'hide-this') DIVs[i].style.display = 'none';
}
</script>
[/html]
حالا میتونی از این روش تو یه تابع استفاده کنی و اونو با onload تو صفحه اجرا کنی یا اینکه از بقیه رویدادها برای اجراش استفاده کنی اما در هر صورت اول محتویات همه div ها نمایش داده میشه تا وقتی که صفحه لود بشه و این دستور اونا رو غیب کنه!
البته ممکنه روش دیگه ای هم برای پیدا کردن لایه ها وجود داشته باشه. اگر بقیه دوستان روش دیگه ای بلدن لطفاً راهنمایی کنید :11: