Перейти к публикации

Рекомендованные сообщения

Много искал, но везде все криво было, но вот нашел данный хак, кому надо, забирайте, автор не я, арспространяется бесплатно...

Итак начнем...

1. Создаем файл mw_hint.js и кидаем его в templates/ваш шаблон/css/

2. В файл mw_hint.js вставляем этот код:

function MW_System_Load(){

this.wib = screen.width;

this.heb = screen.height;

this.documes = (document.getElementById || document.createElement || document.getElementsByTagName) ? true : false;

this.objects = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;

this.types = 'load';

}

MW_System_Load.prototype.addsevent = function(func){

if(this.objects.addEventListener){

this.objects.addEventListener(this.types,func,false);

return true;

} else if (this.objects.attachEvent){

this.objects.attachEvent("on" + this.types,func);

} else {

return false;

}

}

MW_System_Load.prototype.browser = function(){

this.ver = navigator.appVersion;

this.agent = navigator.userAgent.toLowerCase();

this.dom = document.getElementById ? 1:0;

this.all = document.all ? 1:0;

this.ie5 = (this.ver.indexOf("MSIE 5")>-1 && this.dom) ? 1:0;

this.ie6 = (this.ver.indexOf("MSIE 6")>-1 && this.dom) ? 1:0;

this.ie4 = (document.all && !this.dom) ? 1:0;

this.ie = this.ie4 || this.ie5 || this.ie6;

this.opera = this.agent.indexOf("opera")>-1;

this.gecko = (this.agent.indexOf("gecko")!=-1) ? 1:0;

this.bw = (this.ie || this.opera || this.gecko);

return this;

}

MW_System_Load.prototype.findobj = function(obj){

this.parent = window.document;

if(this.parent[obj]){ return this.parent[obj]; }

if(this.parent.all && this.parent.all[obj]){ return this.parent.all[obj]; }

if(this.parent.layers && this.parent.layers[obj]){ return this.parent.layers[obj]; }

if(this.parent.getElementById && this.parent.getElementById(obj)){ return this.parent.getElementById(obj); }

return null;

}

var MW = new MW_System_Load();

function MW_System_Hint(){}

MW_System_Hint.prototype.show = function(obj,str){

var hint = MW.findobj('hint');

if(!obj){ return; }

if(!MW.documes){ return; }

if(!hint){ return; }

hint.className = 'hint';

hint.style.left = 15;

hint.style.top = 50;


obj.onmouseout = function(advance){

hint.style.width = '';

hint.style.visibility = 'hidden';

if(hint.firstChild) hint.removeChild(hint.firstChild);

hint.appendChild(document.createTextNode(str));

};

obj.onmousemove = function(advance){

//str = str.replace(/</g,"&lt;");

//str = str.replace(/>/g,"&gt;");

hint.style.width = '';

hint.innerHTML = str;

vc = document.getElementsByTagName((document.compatMode && document.compatMode=="CSS1Compat") ? "HTML":"BODY")[0];

x = window.event ? event.clientX + vc.scrollLeft : advance.pageX;

y = window.event ? event.clientY + vc.scrollTop : advance.pageY;

vcwidth = vc.clientWidth ? vc.clientWidth + vc.scrollLeft : window.innerWidth + window.pageXOffset;

vcheight = vc.innerHeight ? window.innerHeight + window.pageYOffset : vc.clientHeight + vc.scrollTop;

  if(hint.offsetWidth>500){ hint.style.width = '200'; }

  if((x + hint.offsetWidth + 15) > vcwidth){

   hint.style.left = x - hint.offsetWidth - 4;

  } else {

   hint.style.left = x + 15;

  }

  if((y + hint.offsetHeight + 19) > vcheight){

   hint.style.top = y - hint.offsetHeight;

  } else {

   hint.style.top = y + 25;

  }

  //if(typeof(hint.style.MozOpacity)!="undefined"){

  hint.style.opacity = '.91';

  hint.style.filter = "alpha(opacity:91)";

  //}

  hint.style.visibility = 'visible';

};

}

MW_System_Hint.prototype.initialize = function(){

var hint = document.createElement("DIV");

hint.setAttribute('id','hint');

document.getElementsByTagName('body')[0].appendChild(hint);

hint.style.visibility = 'hidden';

var hintmarker = ['a','img'];

var textmarker = ['title','alt'];

var lenmarker = hintmarker.length;

for(var i=0; i<lenmarker; i++) {

atr = document.getElementsByTagName(hintmarker[i]);

for(var j=0; j<atr.length; j++)

if(viewhint=atr[j].getAttribute(textmarker[i])){

  atr[j].removeAttribute(textmarker[i]);

  HINT.show(atr[j],viewhint);

}

}

}

var HINT = new MW_System_Hint();

if(MW.objects){ MW.addsevent(HINT.initialize); }
3. В файле стилей дописываем строки
.hint

{

background-color:#336699;

line-height:10px;

color:white;

font-family:verdana;

font-size:11px;

width:auto;

border-top:1px solid white;

border-right:1px solid white;

border-bottom:1px solid white;

border-left:5px solid orange;

margin:0px;

padding:8px;

position:absolute;

visibility:hidden;

}
Немножко о настройках хинта. color: - само собой цвет текста. background-color: - цвет фона. font-family: - шрифт. font-size: - размер шрифта. width: - ширина. по умолчанию (auto) если хотите можете изменить. но она тогда будет фиксированная. 4. Далее в main.tpl вставляем вот эту строку:
<script type="text/javascript" src="{THEME}/css/mw_hint.js"></script>

Ссылка на сообщение
Поделиться на других сайтах

Ну например тут млжно посмотреть mobilize.in наводишь на любую ссылку и видишь... Всплывает не у всех ссылок, а только у тех где прописан alt.

Ссылка на сообщение
Поделиться на других сайтах

Ну например тут млжно посмотреть mobilize.in наводишь на любую ссылку и видишь... Всплывает не у всех ссылок, а только у тех где прописан alt.

Что-то не нашел...

И нужно выводить не alt а title, так как alt - это атрибут для альтернативного текста, который является обязательным параметрам у изображений и который используется поисковиками, ну и когда изображение не найденно. И alt не отображается как подсказка в некоторых браузерах. Тем более как подсказка к ссылкам и тексту.

Ссылка на сообщение
Поделиться на других сайтах

Ну например тут млжно посмотреть mobilize.in наводишь на любую ссылку и видишь... Всплывает не у всех ссылок, а только у тех где прописан alt.

Что-то не нашел...

И нужно выводить не alt а title, так как alt - это атрибут для альтернативного текста, который является обязательным параметрам у изображений и который используется поисковиками, ну и когда изображение не найденно. И alt не отображается как подсказка в некоторых браузерах. Тем более как подсказка к ссылкам и тексту.

Запыхался вот и написал alt... Да, конечно же title... Пример вот хотя бы на картинке, в инете показать не могу

0ca1ae6f85eb.jpg

Ссылка на сообщение
Поделиться на других сайтах

Как раз скоро понадобится что-то подобное.

Есть еще вопросы:

1. Кроссбраузерность есть?

2. Многострочность поддерживается?

3. А html теги?

Ссылка на сообщение
Поделиться на других сайтах

1. Браузеры, проверил в IE8, Opera и Mozila, везде работает....

2. Многострочность да, в зависимости от того какую ширину задашь в стилях.

3. не пробывал

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...
  • 3 месяца спустя...

Поставил, работает, но...подсказка всплывает внизу страницы, а не у курсора и если смотришь начало страницы, то и подсказки не видно. Как исправить? DLE 8.5 http://softterritory.ru/

Поправка: Это всё на Mazilla Firefox, На IE8 всё работает правильно, но при наведении курсора на картинку выходят 2 подсказки - эта и стандартная.

Изменено пользователем gifanx
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...