PDA

View Full Version : سوال: تغییر رنگ هدر سایت با کلیک روی رنگ



ravand
جمعه 10 شهریور 1391, 08:23 صبح
سلام
این سایت رو نگاه کنید.
http://ahmadinejad.ir/fa/
پایین هدر سایت سمت چپ پنج تا رنگ هست که با انتخاب هر کدوم به غیر از تغییر رنگ زمینه ی سایت رنگ هدر سایت هم عوض میشه. چطور این اتفاق می افته؟
چجوری میتونم این کار رو انجام بدم؟
سایت بلاگ اسکای هم همچین امکانی داشت ولی اون فقط رنگ زمینه ی سایت رو تغییر میداد نه رنگ هدر رو.
متشکرم.

meisam12
پنج شنبه 16 شهریور 1391, 01:58 صبح
این گونه کارها را با jquery انجام می دهند یعنی با jquery می توان theme داینامیک ایجاد کرد. بدین گونه که به فایل css می توان خاصیت add کرد و یا تغییر داد از جمله همین تغییر دادن رنگ.

ravand
پنج شنبه 16 شهریور 1391, 10:11 صبح
این گونه کارها را با jquery انجام می دهند یعنی با jquery می توان theme داینامیک ایجاد کرد. بدین گونه که به فایل css می توان خاصیت add کرد و یا تغییر داد از جمله همین تغییر دادن رنگ.

خب چجوری؟:لبخند:

meisam12
پنج شنبه 16 شهریور 1391, 13:01 عصر
سلام دوست عزیز
اول این css را به اسم style.css ذخیره کن.

body {
direction: rtl;
}

#Main {
direction: rtl;
background-color: magenta;
height: 200px;
width: 500px;
}

#BlueDiv {
background-color: blue;
height: 20px;
width: 40px;
}
#RedDiv {
background-color: red;
height: 20px;
width: 40px;
}
#YellowDiv {
background-color: yellow;
height: 20px;
width: 40px;
}
#WhiteDiv {
background-color: white;
height: 20px;
width: 40px;
}
#MagentaDiv {
background-color: magenta;
height: 20px;
width: 40px;
}


بعد فایلی که گذاشتم به پروژه ات اضافه کن.
و بعد این رفرنس را در head بنویس.

<link rel="StyleSheet" type="text/css" href="style.css"/>
<script src="jquery.js" type="text/javascript"></script>

و بعد این اسکریپت را اضافه کن.

<script type="text/javascript">
function SetBackColor(color)
{
$('#Main').css("background-color", color);
}

</script>

و در آخر قسمت html بنویس

<div id="Main">

</div>
<br/>
<div id="BlueDiv" onclick="SetBackColor('blue')"></div>
<div id="YellowDiv" onclick="SetBackColor('Yellow')"></div>
<div id="RedDiv" onclick="SetBackColor('red')"></div>
<div id="WhiteDiv" onclick="SetBackColor('white')"></div>
<div id="MagentaDiv" onclick="SetBackColor('magenta')"></div>

ravand
پنج شنبه 16 شهریور 1391, 13:49 عصر
منظورم رو نگرفتی داداش.
برو دوباره سایت رو ببین:http://ahmadinejad.ir/fa/
وقتی رنگ زمینه عوض میشه رنگ هدر هم عوض میشه. منظورم از رنگ هدر خود عکس هدر سایت هست.
من این نمونه که شما گذاشتی در سایت blogsky.com دیده بودم ولی این یکی فرق داره. چون رنگ هدر هم عوض میشه. یه تست بکن.
متشکرم.

tamafi6
جمعه 17 شهریور 1391, 15:44 عصر
دوست عزیزشما برای نمونه میتونید اینجا (http://pacifist.comuv.com/) هم کدراببینید
من برای تغییررنگ بک گرانداستفاده کردم کافیه شماباcssبرای هرکجاازصفحه ات استفاده کنی اگه داخل تگ headنگاه بیاندازی با5تامعرف cssمواجه میشی


<head>
<link href="css/gray.css" title="gray" rel="stylesheet" type="text/css" />
<link href="css/aqua.css" title="aqua" rel="alternate stylesheet" type="text/css" />
<link href="css/green.css" title="green" rel="alternate stylesheet" type="text/css" />
<link href="css/olive.css" title="olive" rel="alternate stylesheet" type="text/css" />
<link href="css/purple.css" title="purple" rel="alternate stylesheet" type="text/css" />

<script src="java.js" type="text/javascript"></script>
</head>

ویک صفحه جاوااسکریپت ودرداخل bodyتگ


<div id="Wrapper">
<a onclick="chooseStyle('gray',60);return false;"><img src="img/1.jpg" alt="gray" title="gray" /></a>
<a onclick="chooseStyle('aqua',60);return false;"><img src="img/2.jpg" alt="aqua" title="aqua" /></a>
<a onclick="chooseStyle('green',60);return false;"><img src="img/3.jpg" alt="green" title="green" /></a>
<a onclick="chooseStyle('purple',60);return false;"><img src="img/4.jpg" alt="purple" title="purple" /></a>
<a onclick="chooseStyle('olive',60);return false;"><img src="img/5.jpg" alt="olive" title="olive" /></a>
</div>

کلیک کردن برروی تصویررنگهاشما رابه صفحه css متعلق به همان رنگ ارجاع میده که براش تعریف کردی که ازچه تابعی استفاده کنه که من برای پس زمینه استفاده کردم مثل:

body{
margin: auto;
text-align:left;
background-color: #1a1a1a;
}


شما بجایbody هرکجا ازصفحه راخواستی میتونی بهش معرفی کنی برای اینکه صفحه مجددلود نشه وفقط رنگ صفحه تغییر پیداکنه ازیه تکه جاوا اسکریپت استفاده شده که فقط رنگ مورد نظرماراتغییربده این هم کد


function getCookie(Name) {
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return null
}

function setCookie(name, value, days) {
var expireDate = new Date()
//set "expstring" to either future or past date, to set or delete cookie, respectively
var expstring=(typeof days!="undefined")? expireDate.setDate(expireDate.getDate()+parseInt(d ays)) : expireDate.setDate(expireDate.getDate()-5)
document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/";
}

function deleteCookie(name){
setCookie(name, "moot")
}


function setStylesheet(title, randomize){ //Main stylesheet switcher function. Second parameter if defined causes a random alternate stylesheet (including none) to be enabled
var i, cacheobj, altsheets=[""]
for(i=0; (cacheobj=document.getElementsByTagName("link")[i]); i++) {
if(cacheobj.getAttribute("rel").toLowerCase()=="alternate stylesheet" && cacheobj.getAttribute("title")) { //if this is an alternate stylesheet with title
cacheobj.disabled = true
altsheets.push(cacheobj) //store reference to alt stylesheets inside array
if(cacheobj.getAttribute("title") == title) //enable alternate stylesheet with title that matches parameter
cacheobj.disabled = false //enable chosen style sheet
}
}
if (typeof randomize!="undefined"){ //if second paramter is defined, randomly enable an alt style sheet (includes non)
var randomnumber=Math.floor(Math.random()*altsheets.le ngth)
altsheets[randomnumber].disabled=false
}
return (typeof randomize!="undefined" && altsheets[randomnumber]!="")? altsheets[randomnumber].getAttribute("title") : "" //if in "random" mode, return "title" of randomly enabled alt stylesheet
}

function chooseStyle(styletitle, days){ //Interface function to switch style sheets plus save "title" attr of selected stylesheet to cookie
if (document.getElementById){
setStylesheet(styletitle)
setCookie("mysheet", styletitle, days)
}
}

function indicateSelected(element){ //Optional function that shows which style sheet is currently selected within group of radio buttons or select menu
if (selectedtitle!=null && (element.type==undefined || element.type=="select-one")){ //if element is a radio button or select menu
var element=(element.type=="select-one") ? element.options : element
for (var i=0; i<element.length; i++){
if (element[i].value==selectedtitle){ //if match found between form element value and cookie value
if (element[i].tagName=="OPTION") //if this is a select menu
element[i].selected=true
else //else if it's a radio button
element[i].checked=true
break
}
}
}
}

if (manual_or_random=="manual"){ //IF MANUAL MODE
var selectedtitle=getCookie("mysheet")
if (document.getElementById && selectedtitle!=null) //load user chosen style sheet from cookie if there is one stored
setStylesheet(selectedtitle)
}
else if (manual_or_random=="random"){ //IF AUTO RANDOM MODE
if (randomsetting=="eachtime")
setStylesheet("", "random")
else if (randomsetting=="sessiononly"){ //if "sessiononly" setting
if (getCookie("mysheet_s")==null) //if "mysheet_s" session cookie is empty
document.cookie="mysheet_s="+setStylesheet("", "random")+"; path=/" //activate random alt stylesheet while remembering its "title" value
else
setStylesheet(getCookie("mysheet_s")) //just activate random alt stylesheet stored in cookie
}
else if (randomsetting.search(/^[1-9]+ days/i)!=-1){ //if "x days" setting
if (getCookie("mysheet_r")==null || parseInt(getCookie("mysheet_r_days"))!=parseInt(randomsetting)){ //if "mysheet_r" cookie is empty or admin has changed number of days to persist in "x days" variable
setCookie("mysheet_r", setStylesheet("", "random"), parseInt(randomsetting)) //activate random alt stylesheet while remembering its "title" value
setCookie("mysheet_r_days", randomsetting, parseInt(randomsetting)) //Also remember the number of days to persist per the "x days" variable
}
else
setStylesheet(getCookie("mysheet_r")) //just activate random alt stylesheet stored in cookie
}
}

ravand
جمعه 17 شهریور 1391, 15:47 عصر
:متعجب: یعنی واقعا هیچ کس منظور منو متوجه نمیشه؟؟!!!!!!!!!!!!!!!!

tamafi6
جمعه 17 شهریور 1391, 20:21 عصر
:متعجب: یعنی واقعا هیچ کس منظور منو متوجه نمیشه؟؟!!!!!!!!!!!!!!!!

دوست من شماخودت نمیدونی چی میخوای اینجا (http://pacifist.comuv.com/c/back.rar) برات فایل رامیزارم دانلودکن خودت همه چیزدستت میاد.

ravand
جمعه 17 شهریور 1391, 20:31 عصر
خب عزیز حالا شد.:لبخند:
اون قبلی که گذاشته بودید فقط زمینه رو تغییر میداد ولی این رنگ عکس هدر رو هم تغییر میده.

ravand
جمعه 17 شهریور 1391, 20:33 عصر
:لبخند: آهان پس من گول خوردم .
این رنگ هدر رو عوض نمیکنه این خود هدر رو عوض میکنه و من فکر میکردم رنگ هدر رو عوض میکنه :قهقهه:
برای همین اینقدر برام عجیب شده بود.:قهقهه:

tamafi6
چهارشنبه 03 مهر 1392, 14:27 عصر
ازاینجادانلودکن

css3.host22.com (http://css3.host22.com/files/back.rar)