تغییر Backgrond تگ TR

سلام خسته نباشید . من می خاستم بدونم که با استفاده از چه کدی می شه رنگ background تگ tr رو تغییر داد موقعی که موس روش می ره . مثل منوهای اصلی که توو سایتها هست و با رفتن ماوس به روی هر کدوم از tr ها رنگش تغییر میکنه . ممنون
 

sunrise

Member
اين کد CSS رو در نظر بگيريد:
کد:
tr {
	background: aqua;
}
tr:hover {
	background: blue;
}
اين حالت براي Firefox جواب ميده اما براي IE نه و براي IE مي تونيد از کد زير استفاده کنيد.
HTML:
<html>
<head>
<style type="text/css">
tr {
	background: aqua;
}
.mover {
	background: yellow;
}
</style>
<script type="text/javascript">
function m_over()
{
	document.getElementById('tr1').className = 'mover';
}
function m_out()
{
	document.getElementById('tr1').className = 'tr';
}
</script>
</head>
<body>
<table width="100%">
<tr id="tr1" onmouseover="m_over();" onmouseout="m_out();">
	<td>Menu 1</td>
</tr>
</table>
</body>
</html>
 
سلام . خسته نباشید . ممنون بابت کدی که گذاشتید و منو راهنمایی کردید .
کد شما به طور کاملا صحیح کار می کنه ولی چون بر اساس آی دی هست فقط روو یه تگ Tr کار می کنه .
من بیش از 10 تا تگ Tr توو صفحه خودم دارم نمی دونم باید چی کار کنم ، فقط روو همون اولین تگ کار می کنه ، من این کد را جا گذاری کردم ولی بازم نشد . ممنون می شم اگه منو راهنمایی کنید .

کد:
<script type="text/javascript">
function m_over()
{
    document.getElementByTagName('tr').className = 'mover';
}
function m_out()
{
    document.getElementByTagName('tr').className = 'tr';
}
</script>
 

sunrise

Member
سلام . خسته نباشید . ممنون بابت کدی که گذاشتید و منو راهنمایی کردید .
کد شما به طور کاملا صحیح کار می کنه ولی چون بر اساس آی دی هست فقط روو یه تگ Tr کار می کنه .
من بیش از 10 تا تگ Tr توو صفحه خودم دارم نمی دونم باید چی کار کنم ، فقط روو همون اولین تگ کار می کنه ، من این کد را جا گذاری کردم ولی بازم نشد . ممنون می شم اگه منو راهنمایی کنید .
توابع رو بصورت زير بنويسيد:
HTML:
function m_over(id)
{
	document.getElementById(id).className = 'mover';
}
function m_out(id)
{
	document.getElementById(id).className = 'tr';
}
بعد براي کد HTML به اين صورت تغيير بديد:
HTML:
<table width="100%">
<tr id="tr1" onmouseover="m_over('tr1');" onmouseout="m_out('tr1');">
	<td>Menu 1</td>
</tr>
<tr id="tr2" onmouseover="m_over('tr2');" onmouseout="m_out('tr2');">
	<td>Menu 2</td>
</tr>
...
...
<tr id="trn" onmouseover="m_over('trn');" onmouseout="m_out('trn');">
	<td>Menu 2</td>
</tr>
</table>
 
راه ساده تر و اصولی تری هم هست که بدون اینکه لازم باشه چیزی به صفحه اضافه کنید این جلوه رو ایجاد کنید
اول باید فریم ورک jQuery رو دانلود کنید و به صفحه اضافه کنید.

کد:
<script type="text/javascript" src="http://yoursite.com/jquery.js"></script>

بعد از این کد استفاده کنید

کد:
<script type="text/javascript">
$(document).ready(function(){
$(".stripeme tr").mouseover(function() {$(this).addClass("over");}).mouseout(function() {$(this).removeClass("over");});
});
</script>

باید به table تون کلاس ,stripeme رو اختصاص بدید. به هیچ چیز دیگه هم نیازی نیست دست بزنید
فقط یه کلاس over هم درست کنید و اون رنگ پس زمینه ای رو که می خواید خونه های جدول در زمانی که ماوس روش میره رو داشته باشه رو بهش میدید
 
سلام . خیلی خیلی ممنونم از جناب amirabbas_p30magazine و sunrise
من توی هر دوتا روش یه مشکل خیلی کوچیک دارم :
به صورت پیش فرض به این تگ TR یه بکگراند ( Background Color ) تخصیص دادم و الان وقتی با ماوس روی اون تگهای TR می رم همه چیزش تغییر می کنه ( بر اساس کلاس mover یا over ) ، به جز رنگ بکگراند !!!
نکته : زمانی هم که اون کلاس پیش فرض رو از اون تگهای TR بر می دارم مشکل حل می شه !
یک دنیا ممنون . :oops:
 
طرحت رو یه جا آپلود میکنی لینک بدی ؟
یه جای کارت مشکل داره چون این کد ها تست شده هست. من خودم بارها استفاده کردم
 
سلام . منم نمی گم که کدها مشکل داره . کدها به خصوص کد شما که خیلی راحت تره و نیازی نیست که همه تگها رو تنظیم کرد به خوبی کار می کنه . اما من می خوام زمانی که ماوس رو تگ TR نیست ، یه کلاس دیگه به نام مثلا "MajidOnline" بهش اختصاص داده بشه .
همین .
زمانی هم که خودم به صورت دستی به تگهای TR یه کلاسی رو اختصاص می دم ( کلاسی که بکگراندش یه رنگ دیگه هست ) ، اینجاست که دیگه با رفتن ماوس رنگ بکگراند عوض نمی شه .
هر وقت هم اون کلاسها رو که به تگهای TR اختصاص دادم رو برمی دارم خوب می شه .
 
آخرین ویرایش:
بفرمایید . فایل ها رو گذاشتم . پیشاپیش یک دنیا ممنون بابت راهنمایی .
 

پیوست ها

  • example.zip
    12.3 کیلوبایت · بازدیدها: 9
خوب شما می خوای این فایل دقیقا چطوری باشه ؟
یه چیزی که تو فایل شما دیدم این بود که شما به تمامی td ها کلاس اختصاص دادی. احتیاجی به این کار نیست. برای چه منظور به همه td ها کلاس اختصاص دادید
دقیقا توضیح بدید شاید بشه مشکل رو حل کرد
 
خوب شما می خوای این فایل دقیقا چطوری باشه ؟
الان توی این فایلی که توو پست قبل پیوست کردم من دقیقا می خوام :
1 ـ به صورت پیش فرض رنگ بکگراند تگهای TR آبی باشه
2 ـ وقتی ماوس روش رفت رنگ بکگراندش قرمز بشه
3 ـ وقتی ماوس از روی تگ کنار رفت دوبارهمون آبی پیش فرض بشه
در صورتی که الان اگه به صورت پیش فرض به تگهای TR کلاسی اختصاص بدم دیگه بکگراند تغییر نمی کنه !
یه چیزی که تو فایل شما دیدم این بود که شما به تمامی td ها کلاس اختصاص دادی. احتیاجی به این کار نیست. برای چه منظور به همه td ها کلاس اختصاص دادید
دقیقا توضیح بدید شاید بشه مشکل رو حل کرد
اینم از بی سوادیم هست . ممنون می شم اگه فایل رو ادیت کنید . اگه اینکارو بکنید لطف بزرگی رو در حقم انجام دادید . :oops:
 
فایل شما خیلی کرو کثیف نوشته شده بود
شما باید یه خورده بیشتر روی CSS کار کنید. احتیاجی نیست برای هر td کلاس تعریف کنید. تو CSS میشه از contextual selector ها استفاده کنید تا td های داخل tr مربوط به یک table خاص رو تحت تاثیر قرار بدید. اصلا احتیاجی به اختصاص کلاس به هر td نیست چون در این صورت کد صفحه شما خیلی شلوغ و سنگین میشه.

من روی فایل شما کار نکردم. همون چیزی رو که شما لازم داشتید رو به شکل اصولی و درست از نو ساختم و به پست پیوست کردم.

:)
 

پیوست ها

  • example.zip
    16.9 کیلوبایت · بازدیدها: 5
سلام . یک دنیا ممنون از شما . مشکلم حل شد . خیلی چیزها هم از این فایل پیوستی که گذاشتید دستگیرم شد . واقعا ممنون .
 

جدیدترین ارسال ها

بالا