Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2015, 21:46
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

Динамическая смена фона на сайте
Доброго времени суток, есть такой блок на сайте:
<div id="style-switcher">
        	<span class="title">Фон сайта</span>
            <ul>
                <li><a class="bg-switcher" value="1" href="#">1</a></li>
                <li><a class="bg-switcher" value="2" href="#">2</a></li>
                <li><a class="bg-switcher" value="3" href="#">3</a></li>
                <li><a class="bg-switcher" value="4" href="#">4</a></li>
           </ul>
</div>

И к нему есть код:
jQuery(document).ready(function(){ 
$('.bg-switcher').click(
					function() {
						var bgNumber = $(this).attr("value");
						$('body').css("background-image","url(http://render911.ru/textures/floor/floor_"+bgNumber+".jpg)");
				});
});

Все работает все классно, но вот как видите ссылка картинки фона ведет на сайт с бесшовными текстурами.
Так вот в коде html 4 кнопки (текстуры), хотелось бы сделать универсально, что бы не добавлять много кнопок, а просто две кнопки "вперед", "назад" ну и что бы номер каждой текстуры выводился.
Так как на том сайте есть текстуры не только ламината, а и другие, хотелось бы сделать еще select с option каждого раздела (ведь ссылки на текстуры прямые, можно этим воспользоваться).
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2015, 22:02
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

На счет второго вопроса про select, сделал вот такое, не ругайте только синтаксиса не знаю.
<select class="type-switcher">
              <option value="1">Ламинат</option>
              <option value="2">Камень</option>
              <option value="3">Дерево</option>
            </select>

и такой вот код:
$('.type-switcher option').click(
					function() {
            var typeLink = "";
						var typeNumber = $(this).attr("value");
						if(typeNumber = "1") {
              typeLink = "http://render911.ru/textures/floor/floor_";
						}else if(typeNumber = "2") {
              typeLink = "http://render911.ru/textures/stone/stone_";
						}else {
              typeLink = "http://render911.ru/textures/wood/wood_";
						};
				});

А в предыдущий код немного изменил:
$('.bg-switcher').click(
					function() {
						var bgNumber = $(this).attr("value");
						$('body').css("background-image","url("+typeLink+bgNumber+".jpg)");
				});
});
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2015, 22:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,102

karakym,
$('.type-switcher option').click

$('.type-switcher').change
...
var typeNumber = this.value
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2015, 22:32
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

Сообщение от рони Посмотреть сообщение
karakym,
$('.type-switcher option').click

$('.type-switcher').change
...
var typeNumber = this.value
Согласен, это уже разобрал, но вот проблемка такая:
jQuery(document).ready(function(){ 

$('.type-switcher').change(
					function() {
						var typeNumber = $(this).attr("value");
            if(typeNumber == "1") {
              typeLink = "http://render911.ru/textures/floor/floor";
						}else if(typeNumber == "2") {
              typeLink = "http://render911.ru/textures/stone/stone";
						}else {
              typeLink = "http://render911.ru/textures/wood/wood";
						};
            alert(typeLink);
				});

$('.bg-switcher').click(
					function() {
						var bgNumber = $(this).attr("value");
            alert(typeLink);
						$('body').css("background-image","url("+typeLink+"_"+bgNumber+".jpg)");
            
				});
});

Значит в первой функции нажатие выводит окошко alert(typeLink), а уже вторая функция не выводит это же окошко! Почему так? Что не правильно? И как правильно сцеплять 2 переменные?
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2015, 22:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,102

karakym,
обьявить нужные переменные в строке 2 а не в телах функций
Ответить с цитированием
  #6 (permalink)  
Старый 27.06.2015, 22:47
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

Хорошо, с этим разобрался. А как мне теперь убрать кучу кнопок (нажатие на каждую кнопку заменяет фон своей текстурой) и сделать только 2: назад, вперед (что бы по нажатию +1 к переменнай кнопки или -1) при этом для каждого option можно было указать максимальное число (что бы например выше чем 37 не добавляло +1 к переменной)
Ответить с цитированием
  #7 (permalink)  
Старый 27.06.2015, 22:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,102

karakym,
<!DOCTYPE HTML>

<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script>
        $(function() {
            var typeLink = "http://render911.ru/textures/floor/floor",
                bgNumber = 1;
            $(".type-switcher").change(function() {
                typeLink = {
                    1: "http://render911.ru/textures/floor/floor",
                    2: "http://render911.ru/textures/stone/stone",
                    3: "http://render911.ru/textures/wood/wood"
                }[this.value];
                fn()
            });
            $(".bg-switcher").click(function() {
                bgNumber = $(this).attr("value");
                fn()
            });

            function fn() {
                $("body").css("background-image", "url(" + typeLink + "_" + bgNumber + ".jpg)")
            }
            fn()
        });
    </script>
</head>

<body>
    <div id="style-switcher">
        <span class="title">Фон сайта</span>
        <ul>
            <li><a class="bg-switcher" value="1" href="#">1</a></li>
            <li><a class="bg-switcher" value="2" href="#">2</a></li>
            <li><a class="bg-switcher" value="3" href="#">3</a></li>
            <li><a class="bg-switcher" value="4" href="#">4</a></li>
        </ul>
    </div>

    <select class="type-switcher">
        <option value="1">Ламинат</option>
        <option value="2">Камень</option>
        <option value="3">Дерево</option>
    </select>


</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 27.06.2015, 23:05
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

рони,
Мерси
Ответить с цитированием
  #9 (permalink)  
Старый 27.06.2015, 23:10
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

Ребят, хочу еще заменить это:
<ul>
                <li><a class="bg-switcher" value="1" href="#">1</a></li>
                <li><a class="bg-switcher" value="2" href="#">2</a></li>
                <li><a class="bg-switcher" value="3" href="#">3</a></li>
                <li><a class="bg-switcher" value="4" href="#">4</a></li>
                <li><a class="bg-switcher" value="5" href="#">5</a></li>
                <li><a class="bg-switcher" value="6" href="#">6</a></li>
                <li><a class="bg-switcher" value="7" href="#">7</a></li>
                <li><a class="bg-switcher" value="8" href="#">8</a></li>
                <li><a class="bg-switcher" value="9" href="#">9</a></li>
                <li><a class="bg-switcher" value="10" href="#">10</a></li>
                <li><a class="bg-switcher" value="11" href="#">11</a></li>
                <li><a class="bg-switcher" value="12" href="#">12</a></li>
            </ul>

Этим:
<ul>
                <li><a class="next" href="#">></a></li>
                <li><a class="nuber" href="#">0</a></li>
                <li><a class="prew" href="#"><</a></li>
            </ul>

Но тут даже говнокод написать не могу((
Ответить с цитированием
  #10 (permalink)  
Старый 28.06.2015, 01:15
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

<!DOCTYPE html>
<html lang="en">
<head>
<title>Untitled</title>
<meta charset="utf-8">
<link href="http://red-web.pp.ua/advo.dp.ua2/styles.css" rel="stylesheet" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<span style="background: rgba(255,0,0,0.5);font-size: 36px;margin:auto;font-family: 'Didact Gothic', sans-serif;color:#fff;padding: 20px;">УРА!!! Товарищи!!!</span>
<script>
$(function() {
            var typeLink = "http://render911.ru/textures/floor/floor",
                bgNumber = 1;
                numLink = 1;
                maxNum = {
                  1: "73",
                  2: "61",
                  3: "116",
                  4: "36",
                  5: "300"
                }
            $(".type-switcher").change(function() {
                numLink = $(this).attr("value");
                typeLink = {
                    1: "http://render911.ru/textures/floor/floor",
                    2: "http://render911.ru/textures/stone/stone",
                    3: "http://render911.ru/textures/wood/wood",
                    4: "http://render911.ru/textures/leather/leather",
                    5: "http://server3d.ru/textures/wallpapers/wallpaper"
                }[this.value];
                $(this).append("("+maxNum[numLink]+")");
                fn()
            });

            function fn() {
                $("body").css("background-image", "url(" + typeLink + "_" + bgNumber + ".jpg)");
                $(".nuber").html(bgNumber)
            }
            fn()
            /*NEXT*/
        $(".next").click(function() {
                if(bgNumber > (maxNum[numLink]-1)) {
                  fn()
                }else {
                  bgNumber++
                  fn()
                }
                $(".nuber").html(bgNumber)
                fn()
            });
        $(".prew").click(function() {
                if(bgNumber < 2) {
                  fn()
                }else {
                  bgNumber--;
                }
                $(".nuber").html(bgNumber)
                fn()
            });
        });
</script>
<div id="style-switcher">
        	<span class="title">Фон сайта</span>
            <ul>
                <li>
                <select class="type-switcher">
                  <option value="1" selected="selected">Ламинат</option>
                  <option value="2">Камень</option>
                  <option value="3">Дерево</option>
                  <option value="4">Кожа</option>
                  <option value="5">Обои</option>
                </select>
                </li>
                <li><input type="button" class="next" value=">"/></li>
                <li><span class="nuber">0</span></li>
                <li><input type="button" class="prew" value="<"/></li>
            </ul>
</div>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая смена фона new_guy Элементы интерфейса 8 18.12.2014 05:58
Отключение фона на сайте. Nerd (X)HTML/CSS 4 18.05.2014 17:29
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Плавное уменьшение фона на сайте kichik Общие вопросы Javascript 3 29.05.2012 09:21
случайная смена фона сайта на jquery Netherlandman jQuery 8 25.08.2010 03:11