Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   А можно ли в конструкции .css('background', '') передавать URL бекграунда строкой? (https://javascript.ru/forum/events/60043-mozhno-li-v-konstrukcii-css-%27background%27-%27%27-peredavat-url-bekgraunda-strokojj.html)

Coriolan161 08.12.2015 20:45

А можно ли в конструкции .css('background', '') передавать URL бекграунда строкой?
 
Привет!

У меня такая конструкция: есть n блоков с бекграундами. У каждого свой. При mouseenter они пропадают. При mouseleave обратно появляются.
Мне интересно: кто сталкивался с неявным заданием URL-адреса в .css()???
Можно ли его задавать в виде строковой переменной???

Я забиваю все изображения в массив
array arr=array(n);
     arr[0]=' \'url(images/image0.png)  no-repeat\' ';
     arr[1]=' \'url(images/image1.png)  no-repeat\' ';
     ...
     arr[n]=' \'url(images/imagen.png) no-repeat\' ';


Дальше организую обработку событий
$('.block').on({
                        mouseenter: function() {
                                          $(this).css('backgroundImage', 'none');
                                                         },
 
                        mouseleave: function() {
                                              var number = $('.block').index(this);
                                              $(this).css('background', arr[number]);
                                                         }
        });


Таким образом я узнаю индекс блока в наборе и в качестве URL в .css() забиваю элемент массива с указанием соответствующего пути.

Таким образом - Ничего не работает! Поэтому и обращаюсь к вашему опыту.

рони 08.12.2015 21:17

Coriolan161,
зачем плодить темы ... кто есть
Цитата:

Сообщение от Coriolan161
number

?
Цитата:

Сообщение от Coriolan161
Таким образом я узнаю индекс блока в наборе

где?
и
Цитата:

Сообщение от рони
вместо 'background' терзайте backgroundImage


Coriolan161 08.12.2015 21:27

рони,
number - это переменная для хранения индекса блока в наборе (блоков).

var number = $('.block').index(this);

рони 08.12.2015 21:28

Coriolan161,
а это что
Цитата:

Сообщение от Coriolan161
array arr=array(n);


рони 08.12.2015 21:29

Coriolan161,
:(
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
      .capabilitySection-block{
        height: 80px;
        float: left;
         width: 200px;
         background-image:  url(http://javascript.ru/forum/images/ca_serenity/misc/logo.gif);
          background-repeat: no-repeat;
         background-size: 100% 100%;
      }
      .capabilitySection-label{
        padding-top: 120px;
      }
      .capabilitySection-comment{
        opacity:0;
      }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
   $(function() {
      var arr = ['url(http://javascript.ru/forum/images/smilies/sad.gif)',
                 'url(http://javascript.ru/forum/images/smilies/cray.gif)',
                 'url(http://javascript.ru/forum/images/smilies/dance3.gif)'];

      $('.capabilitySection-block').on({
          mouseenter: function() {
              $('.capabilitySection-label', this).stop(true, true).animate({
                  paddingTop: '0px'
              }, 'slow');
              $(this).css('backgroundImage', 'none');
              $('.capabilitySection-comment', this).stop(true, true).animate({
                  opacity: '1'
              }, 'slow');
          },
          mouseleave: function() {
              $('.capabilitySection-label', this).stop(true, true).animate({
                  paddingTop: '120px'
              }, 'slow');
              var i = $('.capabilitySection-block').index(this);
              $(this).css('backgroundImage', arr[i]);
              $('.capabilitySection-comment', this).stop(true, true).animate({
                  opacity: '0'
              }, 'slow');
          }
      });

  });

  </script>
</head>

<body>

<div class="capabilitySection">
    <div class="capabilitySection-block">
        <p  class="capabilitySection-comment">Появляющийся коммент</p>
        <p  class="capabilitySection-label">Подпись</p>
    </div>
    <div class="capabilitySection-block">
        <p  class="capabilitySection-comment">Появляющийся коммент</p>
        <p  class="capabilitySection-label">Подпись</p>
    </div>
     <div class="capabilitySection-block">
        <p  class="capabilitySection-comment">Появляющийся коммент</p>
        <p  class="capabilitySection-label">Подпись</p>
    </div>
<!--..... и таких блоков (capabilitySection-block)ещё пятеро-->
</div>
</body>

</html>

Coriolan161 08.12.2015 21:44

рони,
Всё. Окончательно разобрался. Осознал свои ошибки.


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