Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.08.2017, 07:48
Аспирант
Отправить личное сообщение для konart Посмотреть профиль Найти все сообщения от konart
 
Регистрация: 09.08.2017
Сообщений: 39

Вопрос - как сделать чтобы подсказки были сверху закрашенных ячеек имеющих объём и тень.
Ответить с цитированием
  #12 (permalink)  
Старый 26.08.2017, 09:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

konart,
убрать позиционирование везде и добавить это.
td{
    position: relative;
 }

 td:after  {
    position:  absolute;
 }
Ответить с цитированием
  #13 (permalink)  
Старый 26.08.2017, 09:55
Аспирант
Отправить личное сообщение для konart Посмотреть профиль Найти все сообщения от konart
 
Регистрация: 09.08.2017
Сообщений: 39

проблема осталась
Изображения:
Тип файла: jpg Screenshot_4.jpg (25.8 Кб, 1 просмотров)
Ответить с цитированием
  #14 (permalink)  
Старый 26.08.2017, 09:58
Аспирант
Отправить личное сообщение для konart Посмотреть профиль Найти все сообщения от konart
 
Регистрация: 09.08.2017
Сообщений: 39

я использовал вместо absolute - fixed именно с целью увести подсказку от закрашенных ячеек
Ответить с цитированием
  #15 (permalink)  
Старый 26.08.2017, 10:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

konart,
делайте свой пример, ниже смотреть DarkGreen
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #myTBL td.DarkGreen
 {

 font:14px helvetica, arial, sans-serif;
 color : White;
 font-weight:800;
 background-color:DarkGreen;
 }


 #myTBL td.Red
 {
 font:14px helvetica, arial, sans-serif;
 color : #ccc;
 font-weight:800;
 background-color:Red;
 }

 #myTBL td.Orange
 {
 font:14px helvetica, arial, sans-serif;
 color : #666;
 font-weight:800;
 background-color:Orange;
 }
 td{
   height: 70px;
   position:  relative;
 }

  #myTBL td:hover:after {
    background-color: #D2691E;
    border-radius: 6px;
    padding: 8px;
    opacity: 1;
 }
 td.DarkGreen:after{ opacity:0;
    content: "это  DarkGreen";
    position: absolute;
   left: 70px;
 }
 td.Red:after{ opacity:0;
    content: "это  Red";
    position: absolute;
   left: 70px;
 }
 td.Orange:after{ opacity:0;
   content: "это  Orange";
   position: absolute;
   left: 70px;
 }


 #myTBL td.DarkGreen
 {
 font:14px helvetica, arial, sans-serif;
 color : White;
 font-weight:800;
 background-color:DarkGreen;
background: linear-gradient(180deg, DarkGreen 95%, Black 5%);
box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7); -webkit-box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7);
border-radius: 5px 5px; -webkit-border-radius: 5px;
z-index: 1;
opacity:0.99;
 }

 td{
   height: auto;/*23*/

	cursor: url('images/cursor-question.png'), url('images/861313825289482149.png'), pointer;
opacity:0.99;
 }
 td{
    position: relative;
 }

 td:after  {
    position:  absolute;
 }


  #myTBL td:hover:after {
    background-color: Lime;      /*стиль подсказки*/
	 font:14px helvetica, arial, sans-serif;
    color : Black;
	 font-weight:400;
    border-radius: 1px;
    padding: 2px;/*8*/
    opacity: 0.99;/*1*/
	border-radius: 5px 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;
	box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7); -webkit-box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7); -moz-box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7);
z-index: 10;

 }

 td.DarkGreen:after{
 opacity:0;
 content: "ALLIN";
 right: 50px;
 bottom: 30px;

 }

  </style>
  <script src="https://cdn.polyfill.io/v1/polyfill.js?Element.prototype.closest"></script>
  <script>
   window.addEventListener('DOMContentLoaded', function() {
     var table = document.querySelector('#myTBL'),
         color = document.querySelectorAll('[name="COLOR"]');
     table.addEventListener('click', function() {
     var target = event.target;
        if (target.closest("td")) {
            [].forEach.call( color, function(el) {
                   el.checked && !target.classList.contains(el.id)?  target.classList.add(el.id) : target.classList.remove(el.id);
            });
        }


     });
       });
  </script>
</head>

<body>
<input type="radio" id="DarkGreen" name="COLOR" value=""  checked="checked">
 <label for="DarkGreen">DarkGreen</label>
 <input type="radio" id="Red" name="COLOR" value="" >
 <label for="Red">RED</label>
 <input type="radio" id="Orange" name="COLOR" value="">
 <label for="Orange">Orange</label>


 <table width="100%" height="100%" id="myTBL" class="select">

 <tr>
 <td class="oAK" bgcolor="PaleGoldenrod">
 AK
 </td>
 <td class="aKK" bgcolor="#BEBEBE">
 KK
 </td>
 <td class="sKQ" bgcolor="PaleGreen">
 KQ
 </td>
 <td class="sKJ" bgcolor="PaleGreen">
 KJ
 </td>
 <td class="sKT" bgcolor="PaleGreen">
 KT
 </td>

 </tr>
 <tr>
 <td class="oAQ" bgcolor="PaleGoldenrod">
 AQ
 </td>
 <td class="oKQ" bgcolor="PaleGoldenrod">
 KQ
 </td>
 <td class="aQQ" bgcolor="PaleGoldenrod">
 QQ
 </td>
 <td class="sQJ" bgcolor="PaleGreen">
 QJ
 </td>
 <td class="sQT" bgcolor="PaleGreen">
 QT
 </td>

 </tr>
 <tr>
 <td class="oAJ" bgcolor="PaleGoldenrod">
 AJ
 </td>
 <td class="oKJ" bgcolor="PaleGoldenrod">
 KJ
 </td>
 <td class="oQJ" bgcolor="PaleGoldenrod">
 QJ
 </td>
 <td class="aJJ" bgcolor="#BEBEBE">
 JJ
 </td>
 <td class="sJT" bgcolor="PaleGreen">
 JT
 </td>

 </tr>

 </table>
</body>
</html>
Ответить с цитированием
  #16 (permalink)  
Старый 26.08.2017, 10:23
Аспирант
Отправить личное сообщение для konart Посмотреть профиль Найти все сообщения от konart
 
Регистрация: 09.08.2017
Сообщений: 39

мой пример. Для правильного понимания ситуации - уменьшите размер окна браузера до минимально возможного размера!!!
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #myTBL td.DarkGreen
 {
 font:14px helvetica, arial, sans-serif;
 color : White;
 font-weight:800;
 background-color:DarkGreen;
background: linear-gradient(180deg, DarkGreen 95%, Black 5%);
box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7); -webkit-box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7);
border-radius: 5px 5px; -webkit-border-radius: 5px; 


 }


 #myTBL td.Red
 {
font:14px helvetica, arial, sans-serif; /*  helvetica, arial, sans-serif*/
color : White; /*#ccc #666 #000 White*/
font-weight:800;
background-color:Indigo;
background: linear-gradient(180deg, Indigo 95%, Black  5%);
box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7); -webkit-box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7);
border-radius: 5px 5px; -webkit-border-radius: 5px; 

 }

 #myTBL td.Orange
 {
font:14px helvetica, arial, sans-serif; /*  helvetica, arial, sans-serif*/
color : #000000; /*#ccc #666 #000 White*/
font-weight:700;
background-color:YellowGreen;
background: linear-gradient(180deg, YellowGreen 95%, DarkOliveGreen 5%, Black);
box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7); -webkit-box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7);
border-radius: 5px 5px; -webkit-border-radius: 5px; 

 }
 
 td{
   height: 70px;
   position:  relative;
 }

  #myTBL td:hover:after {
    background-color: #D2691E;
    border-radius: 6px;
    padding: 8px;
    opacity: 1;
 }
 td.DarkGreen:after{ opacity:0;
    content: "это  DarkGreen";
    position: absolute;
   left: 70px;
 }
 td.Red:after{ opacity:0;
    content: "это  Red";
    position: absolute;
   left: 70px;
 }
 td.Orange:after{ opacity:0;
   content: "это  Orange";
   position: absolute;
   left: 70px;
 }


 #myTBL td.DarkGreen
 {
 font:14px helvetica, arial, sans-serif;
 color : White;
 font-weight:800;
 background-color:DarkGreen;
background: linear-gradient(180deg, DarkGreen 95%, Black 5%);
box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7); -webkit-box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7);
border-radius: 5px 5px; -webkit-border-radius: 5px;
z-index: 1;
opacity:0.99;
 }

 td{
   height: auto;/*23*/

	cursor: url('images/cursor-question.png'), url('images/861313825289482149.png'), pointer;
opacity:0.99;
 }
 td{
    position: relative;
 }

 td:after  {
    position:  absolute;
 }


  #myTBL td:hover:after {
    background-color: Lime;      /*стиль подсказки*/
	 font:14px helvetica, arial, sans-serif;
    color : Black;
	 font-weight:400;
    border-radius: 1px;
    padding: 2px;/*8*/
    opacity: 0.99;/*1*/
	border-radius: 5px 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;
	box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7); -webkit-box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7); -moz-box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.7);
z-index: 10;

 }

 td.DarkGreen:after{
 opacity:0;
 content: "ALLIN";
 right: 50px;
 bottom: 30px;

 }

  </style>
  <script src="https://cdn.polyfill.io/v1/polyfill.js?Element.prototype.closest"></script>
  <script>
   window.addEventListener('DOMContentLoaded', function() {
     var table = document.querySelector('#myTBL'),
         color = document.querySelectorAll('[name="COLOR"]');
     table.addEventListener('click', function() {
     var target = event.target;
        if (target.closest("td")) {
            [].forEach.call( color, function(el) {
                   el.checked && !target.classList.contains(el.id)?  target.classList.add(el.id) : target.classList.remove(el.id);
            });
        }


     });
       });
  </script>
</head>

<body>
<input type="radio" id="DarkGreen" name="COLOR" value=""  checked="checked">
 <label for="DarkGreen">DarkGreen</label>
 <input type="radio" id="Red" name="COLOR" value="" >
 <label for="Red">RED</label>
 <input type="radio" id="Orange" name="COLOR" value="">
 <label for="Orange">Orange</label>


 <table width="100%" height="100%" id="myTBL" class="select">

 <tr>
 <td class="oAK" bgcolor="PaleGoldenrod">
 AK
 </td>
 <td class="aKK" bgcolor="#BEBEBE">
 KK
 </td>
 <td class="sKQ" bgcolor="PaleGreen">
 KQ
 </td>
 <td class="sKJ" bgcolor="PaleGreen">
 KJ
 </td>
 <td class="sKT" bgcolor="PaleGreen">
 KT
 </td>

 </tr>
 <tr>
 <td class="oAQ" bgcolor="PaleGoldenrod">
 AQ
 </td>
 <td class="oKQ" bgcolor="PaleGoldenrod">
 KQ
 </td>
 <td class="aQQ" bgcolor="PaleGoldenrod">
 QQ
 </td>
 <td class="sQJ" bgcolor="PaleGreen">
 QJ
 </td>
 <td class="sQT" bgcolor="PaleGreen">
 QT
 </td>

 </tr>
 <tr>
 <td class="oAJ" bgcolor="PaleGoldenrod">
 AJ
 </td>
 <td class="oKJ" bgcolor="PaleGoldenrod">
 KJ
 </td>
 <td class="oQJ" bgcolor="PaleGoldenrod">
 QJ
 </td>
 <td class="aJJ" bgcolor="#BEBEBE">
 JJ
 </td>
 <td class="sJT" bgcolor="PaleGreen">
 JT
 </td>

 </tr>

 </table>
</body>
</html>
Ответить с цитированием
  #17 (permalink)  
Старый 26.08.2017, 10:25
Аспирант
Отправить личное сообщение для konart Посмотреть профиль Найти все сообщения от konart
 
Регистрация: 09.08.2017
Сообщений: 39

пока подсказка лежит в области одной ячейки (окно браузера позволяет) всё нормально, но как только (а мне нужен минимальный размер окна) и подсказки больше чем ячейка - то подсказка начинает прятаться под ячейку....
Ответить с цитированием
  #18 (permalink)  
Старый 26.08.2017, 11:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

konart,
td.DarkGreen:after{
 width: 50px;
 opacity:0;
 content: "ALLIN";
 left:0;
 bottom: 30px;

 }
Ответить с цитированием
  #19 (permalink)  
Старый 26.08.2017, 18:53
Аспирант
Отправить личное сообщение для konart Посмотреть профиль Найти все сообщения от konart
 
Регистрация: 09.08.2017
Сообщений: 39

похоже заработало! РОНИ - спасибо!!! Правда подсказка прячется за верхний и правый край. Хорошо бы сделать чтобы она появлялась на свободном месте, но это видимо простыми привязками типа left:0;
bottom: 30px; не решить?
Ответить с цитированием
  #20 (permalink)  
Старый 26.08.2017, 19:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

konart,
... плагинов подсказок очень много в инете
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить галерею Colorbox на основе атрибутов изображений lukasss jQuery 4 31.07.2017 22:30
Как запустить два action на ajax Янковиц Элементы интерфейса 1 20.06.2017 22:16
Как обрезать строку и добавить символы в середине, в зависимости от длинны строки andreyua Firefox/Mozilla 12 10.12.2010 15:44
Меняющаяся часть в скрипте в зависимости от выбранной ссылки. Flashton Элементы интерфейса 1 18.02.2010 18:36
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 01:23