Открыть форму входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Фон для каждого пользователя
maxs_wДата: Четверг, 04.08.2011, 10:58 | Сообщение # 1
Лейтенант


maxs_w
Сообщений: 57
Репутация: 3
Статус: Offline
С помощью этого скрипта, пользователь сам сможет выбирать нужный фон для страницы.

Итак начнём с конструктора и создания нового блока.

1) После создания в конструкторе блока, помещаем в него такой HTML код:

Code
<center>[<small><a href="javascript://" onclick="deletebg()">Удалить свой фон</a></small>] [<small>Растянуть фон? <input id="str" type="checkbox"></input></small>]</center>   
   <input id='bg' placeholder='Ваша прямая ссылка на фон, без кавычек' size='35' onclick='select()'></input><center><button value='Сменить фон' onclick='bgchange()'>Сменить фон</button></center>   
   Или используйте уже имеющееся:<br>   
   <select id="bgs">   
   <option selected disabled>Варианты фона</option>   
   <option disabled>Вернуть свою ссылку на фон</option>   
   <option value="http://i22.fastpic.ru/big/2011/0607/54/d49ae7da268da6ef86cdca0be8625b54.png">Якобы windows 8</option>   
   </select>   
   <script type="text/javascript">   
   var dmn="scripttests.ucoz.ru";   
   $(document).ready(function() {   
   $('#bgs').change(function(){   
   $('#bg').val($("select#bgs").val());   
   });   
   $('#str').change(function(){   
   if($("#str").is(':checked')){   
   $('body').removeClass('bg').addClass('bg_temp');   
   setCookie("stretched", "yes", { expires: 999999999, path:"/", domain:dmn} );   
   }else if($("#str").is(':not(:checked)')){   
   $('body').removeClass('bg_temp').addClass('bg');   
   setCookie("stretched", "no", { expires: 999999999, path:"/", domain:dmn} );   
   }   
   });   
   var backgr=getCookie("background")   
   if(backgr){$('#bg').val(backgr);   
   $('#bgs :nth-child(2)').attr("value",backgr);   
   $('#bgs :nth-child(2)').removeAttr("disabled");}   
   });   
   function deletebg(){   
   if(!getCookie("background")){alert("У вас нет установленного фона, удалять нечего")}else{   
   setCookie("background", null, { expires: -1, path:"/", domain:dmn} )   
   alert("Фон выставлен по умолчанию");   
   location.reload(true)}   
   }   
   function bgchange(){   
   if(bg.value!=''){var bg_link=bg.value   
   if(!bg_link.match(/http[^\s\"]+[^\" >]*?/ig)){alert("Вы ввели неверную ссылку на фон")}   
   else{   
   setCookie("background", bg_link, { expires: 999999999, path:"/", domain:dmn} )   
   alert("Новый фон установлен, главная страница будет перезагружена")   
   location.reload(true)   
   }   
   }else{alert("Вы не ввели ссылку на фон")}   
   }   
   </script>

Добавлено (04.08.2011, 10:55)
---------------------------------------------
2) Далее заходим в Общие шаблоны -->Таблица стилей (CSS) и помещаем в любое место, лучше в самый конец чтобы не запутаться:

Code
.bg_temp{  
background-Position: center;  
background-Attachment: fixed;  
background-Repeat: no-repeat;  
background-size: 100% 100%;  
-moz-background-size: 100% 100%;  
-o-background-size: 100% 100%;  
-webkit-background-size: 100% 100%;  
}  
.bg{  
background-Position: center;  
background-Attachment: fixed;  
background-Repeat: no-repeat;  
}


3) Далее, в Глобальные блоки-->Верхняя часть сайта. В самое начало запихнуть следующий код:

Добавлено (04.08.2011, 10:56)
---------------------------------------------

Code
<script type="text/javascript">  
function getCookie(name) {  
var matches = document.cookie.match(new RegExp(  
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"  
))  
return matches ? decodeURIComponent(matches[1]) : undefined  
}  
function setCookie(name, value, props) {  
props = props || {}  
var exp = props.expires  
if (typeof exp == "number" && exp) {  
var d = new Date()  
d.setTime(d.getTime() + exp*1000)  
exp = props.expires = d  
}  
if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }  

value = encodeURIComponent(value)  
var updatedCookie = name + "=" + value  
for(var propName in props){  
updatedCookie += "; " + propName  
var propValue = props[propName]  
if(propValue !== true){ updatedCookie += "=" + propValue }  
}  
document.cookie = updatedCookie  

}  
var bg_li=getCookie("background")  
if(bg_li){document.body.style.backgroundImage = 'url('+bg_li+')';}else{document.body.style.backgroundImage = 'url(/wallpaper.jpg)'}  
document.body.style.padding = '0';  
document.body.style.margin = '0';  
$('document').ready(function(){  
if(getCookie("stretched")=="yes"){$('#str').attr('checked','true');$('body').removeClass('bg').addClass('bg_temp');} else if(getCookie("stretched")=="no" || !getCookie("stretched")){$('#str').removeAttr('checked');$('body').removeClass('bg_temp').addClass('bg');}  
});  
</script>


Сохраняем и переходим к следующему пункту: Настройка всего выше написанного.

Добавлено (04.08.2011, 10:57)
---------------------------------------------
так, скрипт вы установили, далее проверяем код из первого пункта, меняем, если хотим, в списке <select> в пунктах <option> на прямые ссылки на фон, к примеру

Code
<option value="http://uweb.su/wallpaper.png">Фон 1</option>


Ниже смотрим строчку var dmn="ваш домен"; тут надо вставить ваш домен, к примеру var dmn="infoscript.ru"; переменная вроде относится к блоку и должна работать, если не будет, то просто вместо букв dmn вставте туда в кавычках ваш домен.

Далее смотрим код из третьего пункта, строчка:

Добавлено (04.08.2011, 10:58)
---------------------------------------------

Code
document.body.style.backgroundImage = 'url(/wallpaper.jpg)'


выставляем вместо /wallpaper.jpg путь до вашего фона который будет стандартным и постоянным для всех.

Ну и вроде бы всё, ах да про css и функцию растяжки, как мы все знаем есть фон который либо меньше, либо больше отображаемой части сайта, так вот эта функция (если включена) растягивает (втискивает) ваш фон в границы сайта, css спокойно настраивается и имеет довольно привычный вид.

Фон применяется к тегу body в качестве background-image, так что по идее должно работать на любом сайте.


CSG|casper
 
  • Страница 1 из 1
  • 1
Поиск:


Сделать бесплатный сайт с uCoz
Дизайн разработан специально для //skillquality.ucoz.net для индивидуального использования
Администрация ответственности не несет за содержание материала и убытки не возмещает.