نیاز به راهنمایی: محو کردن رنگ باکس

echessdesign

مدیر انجمن طراحی وب
درورد بر شما
من می خواهم زمانی که موس بر روی یک باکس DIV رفت، رنگ آن به رنگ دیگری در مدت زمان مشخص (مثلا 5 ثانیه) تغییر یابد.
مثلا من یک باکس با رنگ آبی دارم و می خواهم زمانی که موس بر روی ان رفت Hover در مدت 5 ثانیه به رنگ قرمز تغییر رنگ بده Fade Color.
پیشاپیش سپاسگزارم.
 

MJ Rayaneh

Well-Known Member
با دستکاری کد جاوا برای فید کردن لینک ها، اون رو برای div تنظیم کن.
اگر نتونستی، اگ وقت داشتم برات ردیف میکنم و میذارم.
کد جاوا برای فید کردن در بخش مقالات مجید آنلاین و در همین انجمن حتما موجود هست باید سرچ کنی تا پیدا کنی.
 

echessdesign

مدیر انجمن طراحی وب
متشکرم از راهنماییت
متاسفانه من اصلا از Js سر رشته ندارم. منتظر کمک شما هستم
پیشاپیش سپاسگزارم
 

MJ Rayaneh

Well-Known Member
متشکرم از راهنماییت
متاسفانه من اصلا از Js سر رشته ندارم. منتظر کمک شما هستم
پیشاپیش سپاسگزارم
خواهش میکنم دوست عزیز.
جوابت رو میذارم ولی شاید یه خرده طول بکشه چون سرم خیلی خیلی خیلی شلوغه!
تا بعد ...
 
ببخشید به خاطر امتحانات میان ترم نمی تونم زود به زود بیام

این کاری که گفتی رو من بلد نیستم
ولی می تونم یه کد بنویسم که مثلا ده تا رنگ رو بگیره و در زمان مشخصی اونا رو پشت سر هم اعمال کنه

اینکه دو تا رنگ بدی بعد از یکی به یکی دیگه تغییر پیدا کنه رو من بلد نیستم

نیاز به یه الگوریتم خاصی داره که مدتها دنبالش بودم ولی پیداش نکردم

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

echessdesign

مدیر انجمن طراحی وب
متشکرم محسن جان از راهنماییت.
نه من به همون کد نیازمندم، اما شاید به این موضوع توجه نکرده بودم که همچین در خواست هایی را نباید از جاوا اسکریپت انتظار داشت.
 

mazoolagh

Active Member
اتقاقا" js برای چنین کارهایی است!
چیزی که شما میخواهید چندان هم ساده نیست (یعنی بسادگی FADE معمولی که تغییر TRANSPARENCY هست نیست) چون شما باید از یک رنگ با مؤلفه R1G1B1 به رنگ دیگه R2G2B2 حرکت کنین و این حرکت باید نرم و برای هر سه مؤلفه رنگ همزمان انجام بشه.

خوشحال میشم کمک کنم چون برای خود من هم تمرین هست ولی ادب اقتضا میکنه که منتظر پاسخ جناب MJ RAYANEH باشم.
 

echessdesign

مدیر انجمن طراحی وب
اتقاقا" js برای چنین کارهایی است!
چیزی که شما میخواهید چندان هم ساده نیست (یعنی بسادگی FADE معمولی که تغییر TRANSPARENCY هست نیست) چون شما باید از یک رنگ با مؤلفه R1G1B1 به رنگ دیگه R2G2B2 حرکت کنین و این حرکت باید نرم و برای هر سه مؤلفه رنگ همزمان انجام بشه.

خوشحال میشم کمک کنم چون برای خود من هم تمرین هست ولی ادب اقتضا میکنه که منتظر پاسخ جناب MJ RAYANEH باشم.

دورد بر شما
متشکرم از رعایت آداب شما، اما تا زمانی که MJ Rayaneh عزیز در حال انجام کارهای خود و این بر نامه هست، شما نیز زحمت بکشید و این کد را قرار بدید.
من از یک نمونه دیگه استفاده کردم، ملاحظه بفرمایید که کمکی می کنه؟
پیشاپیش سپاسگزارم
 

mazoolagh

Active Member
خوب، راستش من این تاپیک رو فراموش کرده بودم تا دیشب که لاگین کردم.
یک نمونه کد میگذارم که در همه مرورگرهای اصلی درست کار میکنه (IE-OPERA-FF)
اگر سئوالی هست بپرسین

HTML:
<html>
<head>
<script language="javascript">
function fade(element,fade_color) {
	delay = 3 ; // Seconds
	steps = 100 ;
	interval = delay / steps * 1000 ; // mili Seconds
	obj = element ;
	clr1 = element.getAttribute("bgcolor").replace('#','') ;
	clr2 = element.getAttribute("fdcolor").replace('#','') ;
	R1 = parseInt(('0x' + clr1.substring(0,2)).toString(10)) ;
	G1 = parseInt(('0x' + clr1.substring(2,4)).toString(10)) ;
	B1 = parseInt(('0x' + clr1.substring(4,6)).toString(10)) ;
	R2 = parseInt(('0x' + clr2.substring(0,2)).toString(10)) ;
	G2 = parseInt(('0x' + clr2.substring(2,4)).toString(10)) ;
	B2 = parseInt(('0x' + clr2.substring(4,6)).toString(10)) ;
	SR = parseFloat((R2 - R1) / steps) ;
	SG = parseFloat((G2 - G1) / steps) ;
	SB = parseFloat((B2 - B1) / steps) ;
	i = 1 ;
	R = R1 + SR ;
	G = G1 + SG ;
	B = B1 + SB ;
	tx = window.setInterval("change_color()", interval) ;
}

function change_color() {
	obj.style.backgroundColor = RGB(R,G,B) ;
	i++ ;
	if (i == steps) {
		window.clearInterval(tx) ;
		obj.style.backgroundColor = RGB(R2,G2,B2) ;
	}
	R += SR ;
	G += SG ;
	B += SB ;
}

function RGB(RR, GG, BB) {
	x = (parseInt(RR) * 256 * 256 + parseInt(GG) * 256 + parseInt(BB)).toString(16) ;
	while (x.length<6) {x = "0" + x} ;
	return(eval("'#" + x + "'")) ;
}

</script>
</head>
<body>
<div	id="div1"
		style="width:200; height:100" 
		bgcolor="#ff00ff"
		fdcolor="#00ff00"
		onmouseover="fade(this)"></div>
</body>
<script language="javascript">
dv = document.getElementById("div1");
dv.style.backgroundColor = eval("'" + dv.getAttribute("bgcolor") + "'") ;
</script> 
</html>
 

mazoolagh

Active Member
دورد بر شما
متشکرم از رعایت آداب شما، اما تا زمانی که MJ Rayaneh عزیز در حال انجام کارهای خود و این بر نامه هست، شما نیز زحمت بکشید و این کد را قرار بدید.
من از یک نمونه دیگه استفاده کردم، ملاحظه بفرمایید که کمکی می کنه؟
پیشاپیش سپاسگزارم

راستش رو بخواین غیر از کدهایی که جنبه آموزشی دارن به کد دیگران نگاه یا از اونها استفاده نمیکنم - حالم رو یکجوری میکنه!:lol:
 

echessdesign

مدیر انجمن طراحی وب
دوست عزیز متشکرم از زحمت شما
نکته ای که وجود داره اینه که، تا زمانی که موس از روی باکس مورد نظر خارج نشد، رنگ آن تغییر پیدا کند.
رنگ در ابتدا صورتی است، زمانی که موس بر روی آن می رود، با fade شدن رنگ آن به سبز تغییر رنگ بدهد.
زمانی که موس از روی باکس خارج شد، رنگ آن از سبز به آبی Fade شود.
پیشاپیش سپاسگزارم
 

mazoolagh

Active Member
میتونین کد مشابهی رو برای onmouseout استفاده کنین. فقط باید اول تایمر tx رو غیرفعال کنین
 

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

بالا