Окно авторизации с размыванием фона на CSS3 для DLE 10.3 и выше

Добрый вечер. Решился собрать с мыслями и создать готовое окно авторизации для DLE 10.5

Вышло необычно и главное установка состоит из 3-ох простых пунктов + окно универсально для любого сайта на DLE и не требует вмешательства в структуру.

Выглядит это все вот так:

2

1

На сайте появится плавающая иконка при клике на которую появится профиль

3

Шаг 1. Редактируем login.tpl

Замените весь код в login.tpl на:

 [not-group=5]
<div class="super_login_panel">
  <div class="slp_name_box">
    <div class="slp_name_text">
      Вход
      <div class="slp_name_str"></div>
      <div class="spl_close"></div>
    </div>
  </div>
<div class="spl_in clr">
    <div class="spl_in_form">
      <form method="post" action="">
        <ul class="login_form">
          <li>
            <input type="text" name="login_name" id="login_name" placeholder="Имя" class="spl_in_form_input name" />
          </li>
          <li>
            <input type="password" name="login_password" placeholder="Пароль" id="login_password" class="spl_in_form_input pass" />
          </li>        
          <li class="clr">
            <button class="spl_in_form_button login" onclick="submit();" type="submit" title="Войти">Вход</button>  
            <a class="spl_in_form_button reg" href="{registration-link}">Регистрация</a>
          </li>
        </ul>
        <input name="login" type="hidden" id="login" value="submit" />
      </form>
      <div class="spl_links">
          <a href="{lostpassword-link}">Напомнить пароль</a> <br />
    <input type="checkbox" name="login_not_save" id="login_not_save" value="1" />
    <label for="login_not_save"> Чужой компьютер</label>
      </div>
      
    </div>

    <div class="spl_in_social">
      Выполните вход с помощью <br /> социальных сетей
      <ul> 
          [vk]<li class="fb"><a href="{vk_url}" target="_blank"></a></li>[/vk]
          [facebook]<li class="vk"><a href="{facebook_url}" target="_blank"></a></li>[/facebook]
          [yandex]<li class="yd"><a href="{yandex_url}" target="_blank"></a></li>[/yandex]
          [google]<li class="gpl"><a href="{google_url}" target="_blank"></a>[/google]
          [odnoklassniki]<li class="ok"><a href="{odnoklassniki_url}" target="_blank"></a></li>[/odnoklassniki]
          [mailru]<li class="ml"><a href="{mailru_url}" target="_blank"></a></li>[/mailru]
      </ul>
    </div>
  </div>
  
</div>
[/not-group]
[group=5]
<div class="super_login_panel">
  <div class="slp_name_box">
    <div class="slp_name_text">
      {login}
      <div class="slp_name_str"></div>
      <div class="spl_close"></div>
    </div>
  </div>
   <div class="spl_in clr">
    <div class="spl_av">
      <a href="{profile-link}" class="spl_av_img"><img src="{foto}" alt="avatar" /></a>
      <div class="spl_pm">
        <span class="spl_pm_new">
          {new-pm}/
        </span>
        {all-pm}
      </div>
    </div>
    <ul class="spl_menu">
        [admin-link]<li><a href="{admin-link}" target="_blank"><b>Админпанель</b></a></li>[/admin-link]
        <li><a href="{profile-link}">Мой профиль</a></li>
        <li><a href="{pm-link}">почта</a></li>
        <li><a href="{favorites-link}">Мои закладки ({favorite-count})</a></li>
        <li><a href="{newposts-link}">Непрочитанное</a></li>
        <li><a href="/?do=lastcomments">Последние комментарии</a></li>
        <li><a href="{stats-link}">Статистика</a></li>
        <li><a href="{addnews-link}">Добавить новость</a></li>
        <li><a href="{logout-link}">Выход</a> </li>
    </ul>
  </div>
</div>
[/group]

Шаг 2. В файл стилей добавить в конце:

.block_blur.active {
  -webkit-filter: blur(5px);
  -moz-filter: blur(5px);
  -o-filter: blur(5px);
  -ms-filter: blur(5px);
  filter: blur(5px);
}
.clr::after {
	content: '';
	display: table;
	clear: both;
}
.super_login_panel {
  position: fixed;
  background: rgba(0, 0, 0, 0.66);
  width: 100%;
  height: 100%;
  display: none;
  z-index: 900;
}
.slp_name_box {
  background: #fff;
  height: 200px;
  position: relative;
  display: none;
  margin-bottom: 40px;
}
.slp_name_text {
  width: 660px;
  position: absolute;
  color: #cfcfcf;
  left: 50%;
  bottom: 0;
  margin-left: -330px;
  padding-bottom: 10px;
  font-size: 72px;
}
.spl_close {
	width: 32px;
	height: 32px;
	position: absolute;
	right: 0;
	cursor: pointer;
	bottom: 31px;
	background: url(../images/spl_close.png) no-repeat;
}
.slp_name_str {
  position: absolute;
  width: 51px;
  height: 21px;
  bottom: -21px;
  left: 0;
  background: url(../images/spl_str.png) no-repeat;
}
.spl_in {
	 width: 660px;
	 margin: 0 auto;
}
.spl_in_form {
	float: left;
	width: 300px;
}
.spl_in_form ul li {
	margin-bottom: 10px;
}
.spl_in_form_input {
	background: #fff;
	height: 40px;
	border-radius: 3px;
	-moz-border-radius: 3px;
	border: 0;
	padding-left: 30px;
	width: 269px
}
.spl_in_form_input.name {
	background: #fff url(../images/spl_user.png) no-repeat 5px center;
}
.spl_in_form_input.pass {
	background: #fff url(../images/spl_pass.png) no-repeat 5px center;
}
.spl_in_form_button {
	border-radius: 3px;
	-moz-border-radius: 3px;
	color: #fff;
	height: 40px;
	line-height: 40px;
	text-align: center;
	border: 0;
	cursor: pointer;
	font-size: 12px;
	width: 95px;
}
.spl_in_form_button.login {
	background: #22762e;
	float: left;
}
.spl_in_form_button.reg {
	background: #000;
	float: right;
	  width: 200px;
}
.spl_in_form_button.login:hover {
	background: #358E42;
}
.spl_in_form_button.reg:hover {
	background: #1D1D1D;
}
.spl_in_social {
	float: right;
	color: #fff;
	font-size: 16px;
	width: 310px;
	background: url(../images/spl_or.png) no-repeat left center;
	padding-left: 35px;
}
.spl_in_social ul {
	margin-top: 20px;
	height: 40px;
}
.spl_in_social ul li {
	float: left;
	margin-right: 4px;
	height: 40px;
}
.spl_in_social ul li a {
	display: block;
	width: 40px;
	border-radius: 3px;
	-moz-border-radius: 3px;
	height: 40px;
	float: left;
	background: url(../images/spl_icons.png);
}
.spl_in_social ul li.fb a {
	background-color: #4b8adf;
	background-position: 0 0;
}
.spl_in_social ul li.vk a {
	background-color: #3d7798;
	background-position: -40px 0;
}
.spl_in_social ul li.yd a {
	background-color: #fff;
	background-position: -80px 0;
}
.spl_in_social ul li.gpl a {
	background-color: #c73131;
	background-position: -120px 0;
}
.spl_in_social ul li.ok a {
	background-color: #f2bf37;
	background-position: -160px 0;
}
.spl_in_social ul li.ml a {
	background-color: #256fd3;
	background-position: -200px 0;
}
.spl_links {
	font-size: 11px;
}

.spl_av {
	float: left;
	width: 160px;
}
.spl_av_img {
	display: block;
	width: 100px;
	height: 100px;
	border-radius:150px;
	-moz-border-radius: 150px;
	position: relative;
	overflow: hidden;
	margin: 15px auto 15px auto;
}
.spl_av_img img {
	width: 100px;
	height: 100px;
}
.spl_pm {
	text-align: center;
	color: #b5b5b5;
}
.spl_pm_new {
	background: url(../images/spl_pm.png) no-repeat left center;
	padding-left: 35px;
	font-size: 48px;
	color: #fff;
}
.spl_menu {
	float: right;
	width: 465px;
}
.spl_menu li {
	float: left;
	width: 210px;
	margin: 0 4px 4px 0;
}
.spl_menu li a {
	display: block;
	background: rgba(0, 0, 0, 0.65);
	height: 40px;
	line-height: 40px;
	padding:0 18px;
	color: #fff;
	border-radius: 3px;
	font-size: 13px;
	-moz-border-radius: 3px;
}
.spl_menu li a:hover {
	background: rgba(0, 0, 0, 100);
}
.wpl_button {
	background: #fff url(../images/spl_button.png) no-repeat center center;
	position: fixed;
	top: 50%;
	margin-top: -40px;
	right: 20px;
	width: 80px;
	height: 80px;
	border-radius: 150px;
	-moz-border-radius: 150px;
	border: 5px #fff solid;
	cursor: pointer;
	z-index: 899;
}
.wpl_button:hover {
	background: #f1f1f1 url(../images/spl_button.png) no-repeat center center;
	border: 5px #3eb749 solid;
}

Шаг 3. Редактируем main.tpl

найдите и удалите тег {login}

после

<body>

добавить

{login}
<div class="wpl_button"></div>
<div class="block_blur">

перед

</body>

добавить

</div>

Шаг 4 добавим скрипт в тот же main.tpl

перед

</head>

вставить код

<script type="text/javascript">
(function($) {
$(function() {
$(".wpl_button").click(function(){
  $(".super_login_panel").fadeIn(300); // покажем панель
  $(".slp_name_box").slideDown(); // покажем имя
  $(".block_blur").addClass("active"); // размоем страницу
});
$(".spl_close").click(function(){
  $(".super_login_panel").fadeOut(300);
  $(".slp_name_box").slideUp();
  $(".block_blur").removeClass("active");
});
})
})(jQuery)
</script>

Шаг 5 загрузка картинок

Скачайте архив и загрузите изображения в папку images которая находится в папке с ваши шаблоном.

 

Это все. Теперь чуть теории.

Размытие осуществляется по средства css3 свойства blur. К глобальному контейнеру применяется класс в свойствах которого и есть это размытие. Так как сам профиль находится вне этого контейнера, он не размывается.

Скрипт обрабатывает нажатие на кнопку профиля и закрытия всего.

Удачи 🙂

Понравилась статья? Ставь лайк.

Похожие материалы

Обсуждения

Оставьте свой Email И мы обсудим Вашу идею
*P.S.:Не работаю с бюджетами менее чем 600$