Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   grayscale+onClick (https://javascript.ru/forum/events/45418-grayscale-onclick.html)

ureech 27.02.2014 19:44

grayscale+onClick
 
Вечер добрый.Есть кнопка, которая меняет фон шапки сайта на серый.Хочу привязать к ней grayscale, что бы и картинки обесцвечивались. Но никак не получается заставить обесцветиться только картинки.Сереет вся страница.Весь вечер методом тыка проковырял,сил больше нет.Вот код
<script type="text/javascript">

$(document).ready(function(){

grayscale.prepare($('#content_def img,#mainbottom img'));

$('#content_def img,#mainbottom img').click(function(){
grayscale($(this));

	},									
	function(){
		grayscale.reset();
});
	
});

</script>


<input type='button' style="background:#363636" value='' onclick="set_class('gray');grayscale()">
Подскажите,люди добрые.

рони 27.02.2014 19:51

ureech,
а что такое grayscale, где оно живёт?

ureech 27.02.2014 20:06

Живёт вроде здесьВроде это самый ходовой скрипт.Обесцвечивает картинки.

ureech 27.02.2014 20:07

И здесь на форуме я видел обсуждение.

рони 27.02.2014 20:16

ureech,
шапку набросайте )))

рони 27.02.2014 20:28

ureech, жми кнопки макс!!!)))
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://james.padolsey.com/demos/grayscale/grayscale.js"></script>
  <style type="text/css">
  .blg{
    background: #1060BF;
  }
  .def{
    background: #9B0E14;
  }
  .gray{
   background:#363636 ;
  }

  </style>
  <script>
 function set_class(cls)
 {
    document.getElementById('header').className = cls;
    localStorage.cls = cls
 }

      window.onload = function ()
{
     var cls = localStorage.cls;
     cls && set_class(cls)
}
  </script>
 <script type="text/javascript">
$(function(){
var $inp = $('input'), $img = $('#header img');
$inp.click(function(){
var indx = $inp.index(this);
indx == 2 ? grayscale($img) :  grayscale.reset($img)
 });
});
</script>
</head>
<body>

<h1 id="header"><img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="">Вот так</h1>
<input type='button' style="background:#1060BF" value='Test' onclick="set_class('blg')">
<input type='button' style="background:#9B0E14" value='Test' onclick="set_class('def')">
<input type='button' style="background:#363636" value='Test' onclick="set_class('gray')">
</body>

</html>

ureech 27.02.2014 20:30

<script type="text/javascript">
$(document).ready(function(){
grayscale.prepare($('#content_def img,#mainbottom img'));
	
$('#content_def img,#mainbottom img').click(function(){
grayscale($(this));
	},									
	function(){
		grayscale.reset();
});
	
});

</script>

<div style="width:1120px;height:5px;background:#9B0E14;margin:0 auto;"></div>
<div id="header-wrap">
<div id="header" class="def">
<!--header -->
	{{Header}}
<!--/header-->
	</div>	
	</div>


{{Hesder}}:
<script>
 function set_class(cls)
 {
    document.getElementById('header').className = cls;
    localStorage.cls = cls
 }

      window.onload = function ()
{
     var cls = localStorage.cls;
     cls && set_class(cls)
}
  </script>



<div id="logo-text"><a href="" title="">Bible<span>Lab</span></a></div>	
<a name="top"></a>
	<div  id="op">				
		<a href="">Религия-это ловушка для человека,ищущего Бога!</a>	
	</div>


<div class="login">[+phx:if=`[[if_login]]`:is=``:then=`<a href="/login.html">Вход&nbsp|&nbsp;</a><a href="[~54~]">Регистрация</a></div>`:else=`<a href="/login.html?webloginmode=lo">Выход&nbsp|&nbsp;</a><a href="[~55~]">Профиль</a></div>`+]

.................................................. .................
.................................................. ..............
<div class="input">
<input type='button' style="background:#1060BF" value='' onclick="set_class('blg');grayscale.reset()">
<input type='button' style="background:#9B0E14" value='' onclick="set_class('def');grayscale.reset()">
<input type='button' style="background:#363636" value='' onclick="set_class('gray');grayscale()">
</div>

ureech 27.02.2014 20:48

Вот ссылка на сайт, на главной посмотрите.Эти кнопки глючат и серая только один раз работала

рони 27.02.2014 20:58

ureech,
ищите другой плагин это устарел

ureech 27.02.2014 21:01

Всё поправил.Большое человеческое спасибо за помощь.Забыл дописать один класс.Виноват.Исправлюсь.Е ё раз спасибо.

ureech 27.02.2014 21:36

Возможно ли это как то по другому написать:
<script>
 function set_class(cls)
 {
    document.getElementById('header').className = cls;
    localStorage.cls = cls
 }

      window.onload = function ()
{
     var cls = localStorage.cls;
     cls && set_class(cls);
}
  </script>

Что то здесь мешает другому скрипту,(вывод иконок соц.сетей)

рони 27.02.2014 21:43

ureech,
уберите для начала скрипт выше доктипа

ureech 27.02.2014 21:53

Да там его вроде и не было.Все скрипты либо в <head> либо в <body>

рони 27.02.2014 22:49

Цитата:

Сообщение от ureech
Да там его вроде и не было.Все скрипты либо в <head> либо в <body>

еся еся
Цитата:

<script type="text/javascript">
$(function(){
var $inp = $('input'), $img = $('#content-wrap_out img');
$inp.click(function(){
var indx = $inp.index(this);
indx == 2 ? grayscale($img) : grayscale.reset($img)
});
});
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

ureech 28.02.2014 02:08

Не знаю как вы поймали этот момент,:) Видно пока я туда-сюда бегал по шаблонпм он там полежал немного.Дело в этой ф-ции window.onload = function (), она "мешает". И ещё этот grayscale не сохраняется,но это Бог с ним, на скорость не влияет, но вот если по серой кнопки два раза кликнешь, то потом картинку в цвет другими кнопками не перевести, только через перезагрузку.Это как то напрягает.

рони 28.02.2014 02:32

Цитата:

Сообщение от ureech
И ещё этот grayscale не сохраняется

??? о каком сохранении речь -- код из 6 поста должен работать если сам плагин рабочий и менять только цвет картинки -- у автора плагина он работает - яже не смог его запустить - window.onload можно убрать а его содержимое в самый низ страницы тогда . но недумаю что из-за него проблемы

ureech 28.02.2014 14:35

Хорошо, я понял.Спасибо.Буду смотреть.

ureech 28.02.2014 15:10

Убрал, эту ф-цию, всё заработвло.У вас скрипт не пошёл из-за фотки.Я вставил свою и всё заработало.Видно зашифрованная какая то :)
И если есть время не могли бы объяснить , что эта запись значит cls && set_class(cls), остальное более-менее ясно, а эта как то вообще странная.Ни точек,не запятых...Дюже любопытно.


Часовой пояс GMT +3, время: 13:58.