Что не так в скрипте
function showHint(show,text){ if(show==true){ var obj=document.getElementById('hint'); obj.style.position='fixed'; obj.style.left=window.clientWidth; obj.style.top=window.clientHeight; window.status='x-'+obj.style.left+';y-'+obj.style.top; obj.innerHTML=text; } else{ document.getElementById('hint').innerHTML=''; } } <div id="hint" style="width:150px;background-color:#000000;color:#ffffff;"></div> Должен вывести этот див в правый нижний угол экрана. Но не выводит. Что не так? |
Вот пример
<script type="text/javascript"> if(show==true){ var obj=document.getElementById('hint'); obj.style.position='fixed'; obj.style.left=window.clientWidth; obj.style.top=window.clientHeight; window.status='x-'+obj.style.left+';y-'+obj.style.top; obj.innerHTML=text; } else{ document.getElementById('hint').innerHTML=''; } } </script> <span onmousemove="showHint(true,'DELPHI');" onmouseover="showHint(false,'');">DELPHI</span> <div id="hint" style="width:150px;background-color:#000000;color:#ffffff;"></div> [/html] |
Единицы измерения допишите.
|
Попробовал изменить JS и HTML
Тиак: function showHint(show,text){ if(show==true){ var obj=document.getElementById('hint'); var temp=new Integer(); temp=document.body.clientWidth-150; obj.style.left=temp.toString()+'px'; temp=document.body.clientHeight-150; obj.style.top=temp.toString()+'px'; obj.innerHTML=text; } else{ } } <div id="hint" style="width:150px;float:right;background-color:#000000;color:#ffffff;position:absolute;"></div> |
Цитата:
obj.style.left = window.clientWidth + "px"; только window.clientWidth хз где будет работать, в некоторых браузерах есть window.innerWidth, в других надо ширину documentElement или body определять. Измерения окна, документа и элементов _ |
Всё нашёл тут нужную стаью.
Перенастроил так JS и HTML <div id="hint" style="width:150px;float:right;background-color:#000000;color:#ffffff;position:absolute;"></div> function showHint(show,text){ if(show==true){ var obj=document.getElementById('hint'); var temp=0; temp=document.body.clientWidth-150; obj.style.left=temp.toString()+'px'; temp=document.body.clientHeight-150; obj.style.top=temp.toString()+'px'; obj.innerHTML=text; window.status='x='+obj.style.left+'y='+obj.style.top; } else{ } } По идее исходя из статьи скрипт посчитает ширину и высоту всего дока. Тк DOCTYPE нагло скоировал с этой статьи, т.е. Цитата:
|
P.S. Короче опера несмотря не на что этот доктайп игнорирует как и ишак
|
Все браузеры переходят в Standards Compliance Mode c указанным доктайпом XHTML 1.0, вы что-то делаете неправильно.
И toString, при сложении числа со строкой, делать не нужно, сработает приведение типов, это основы JavaScript… |
Проверю
|
Ни один XHTML DOCTYPE который мне известен (Strict (строгий), Transitional (переходный), Frameset (с фреймами)) не работает.
Вот они сами <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> |
Часовой пояс GMT +3, время: 05:34. |