Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

4 вопроса по Javascript

477
10 марта 2007 года
Robinnovich
182 / / 02.12.2006
Здравствуйте уважаемые. Заранее извиняюсь за столь обширный вопрос но так подумав что если все касается Javascript зачем создавать 10 тем.
Вопросы:
1. как узнать поддерживает ли браузер javascript

2. можно ли сделать всплывающее окно чтобы опера и подобные браузеры не блокировали его ?? пример форум IPB когда пришло личное сообщение.


3. для начала вступление: вот в CSS есть такой эффект или класс hover и focus вот например:

input, textarea, select {
background: #FAFAFA;
color: #000000;
border: 1px #D1DEEA solid;
font-size: 11px; font-family: Verdana, Helvetica; text-decoration: none;
}
input:hover, textarea:hover, select:hover {
background: #FAFAFA;
border: 1px #A2BCD5 solid;
}
Результатом будет – при наведении курсора на объекты перечисленные в коде будет меняться цвет рамки. Но данное свойство не работает в IE слышал что с помощи JS можно создать что-то подобное на стандартный hover и будет работать во всех браузерах, не подскажете как сделать для этих объектов.

4. У себя на сайте использую Javascript подсказки в нужных мне местах, они отсично подходят под дизайн и намного функциональней, чем стандартные html. Так вот как-то не замечал что на Firefox они не хотят работать так как с Javascript не очень знаком только основы, я не могу понять в чем бага, большая просьба кто разбирается подскажите что подправить в ниже представленном коде:

[HTML]Сам javascript код:
<script type="text/javascript">
var hide=true;
function movePic(word, info){
_x=window.event.clientX;
_y=window.event.clientY;
_dx=5;
left=false;right=false;
if(_dx+_x+myalt.clientWidth>document.body.clientWidth){
_x=document.body.clientWidth-myalt.clientWidth-_dx;
left=true;
}
if(_dx+_y+myalt.clientHeight>document.body.clientHeight){
_y=document.body.clientHeight-myalt.clientHeight-_dx;
right=true;
}
if(left&&right)
_y=document.body.clientHeight-myalt.clientHeight-_dx*4;
myalt.style.left=_x;
myalt.style.top=_y+document.body.scrollTop;
if(hide){
myalt.innerHTML="<table width='100%'><tr><th><center>"+info+"</center></th></tr><tr><td>"+word+"</td></tr></table>";
myalt.style.visibility="visible";
hide=false;
}
}

function hidePic(){
myalt.style.visibility="hidden";
myalt.innerHTML="";
myalt.style.top=0;
myalt.style.left=0;
hide=true;
}
</script>
Html code:
<style>
.hints {
visibility: hidden;
position: absolute;
left: 0;
top: 0;
border: 1px #7C95AD solid;
width: 200px;
background-color:#E3EBF2;
padding:0px;
z-Index:3
}
</style>
<img src=\"includes/images/info.gif\" style=\"CURSOR: pointer;\" border=\"0\" alt=\"\" onmousemove=\"movePic('"._PASSWORDFREE."', 'Password info')\" onmouseout=\"hidePic()\">
<div id=\"myalt\" class=\"hints\"></div>[/HTML]
12
10 марта 2007 года
alekciy
3.0K / / 13.12.2005
1) Тему поднимали даже на этом форуме. Ищи. Но в краце если код не выполняется, значит JS отлючили ;)

2) Нет. Если выставлено "блокировать" значить блокировать и будут. А то, что ты видел это скорее всего не всплывающее окно, скрытый div или просто скрытый слой которые при наступлении определенного события "всплывает" вверх.

3) Это псевдо-классы и IE их поддерживает, хотя и не все.

4) Бага в IE. У него вообще много вольностей в плане работы с JS которые только в нем и работают. Лучше при разработке на него не ориентироваться.
Ну и напомни мне, что это за метод event объекта window.
477
10 марта 2007 года
Robinnovich
182 / / 02.12.2006
event - Объект событий

Объект событий

Объект Event - свойства
data Массив адресов URL оставленных объектов, когда происходит событие DragDrop.
layerX Горизонтальное положение курсора (в пикселах) относительно слоя. В комбинации с событием Resize это свойство представляет ширину окна браузера.
layerY Вертикальное положение курсора (в пикселах) относительно слоя. В комбинации с событием Resize это свойство представляет высоту окна браузера.
modifiers Строка, задающая ключи модификатора - ALT_MASK, CONTROL_MASK, META_MASK или SHIFT_MASK
pageX Горизонтальное положение курсора (в пикселах) относительно окна браузера.
pageY Вертикальное положение курсора (в пикселах) относительно окна браузера.
screenX Горизонтальное положение курсора (в пикселах) относительно экрана.
screenY Вертикальное положение курсора (в пикселах) относительно экрана.
target Строка, представляющая объект, которому исходно было послано событие.
type Строка, указывающая тип события.
which ASCII-значение нажатой клавиши или номер клавиши мыши.
x Синоним layerX
y Синоним layerY

Цитата:
4) Бага в IE. У него вообще много вольностей в плане работы с JS которые только в нем и работают. Лучше при разработке на него не ориентироваться.
Ну и напомни мне, что это за метод event объекта window.


проблема с Firefox в опере и ИЕ все куль ))

Насчет hover вот нашел код который создает псевдо класс JShover, может кто сообразит для input переделать

Код предоставляю в том виде что нашел:

[HTML]<script type="text/javascript">
jsHover = function() {
var hEls = document.getElementById("Menu").getElementsByTagName("LI");
for (var i=0, len=hEls.length; i<len; i++) {
hEls.onmouseover=function() { this.className+=" jshover"; }
hEls.onmouseout=function() { this.className=this.className.replace(" jshover", ""); }
}
}
if (window.attachEvent && navigator.userAgent.indexOf("Opera")==-1) window.attachEvent("onload", jsHover);
</script>

<style type="text/css">
#Menu, #Menu ul {list-style: none; margin: 0; padding: 0; border: 1px solid #CCC; background: #EEE; float: left; width: 100%;}
#Menu li { float: left; position: relative; background: none;}
#Menu a { color: #000; text-decoration: none; display: block; font-size: 11px; font-family: Verdana, Helvetica; padding: 0px 10px; background: #EEE; url(dot.png) repeat-y right;}
#Menu a:hover { color: #000; background: #ccc;}
#Menu li:hover, #Menu li.jshover {background: #AAA;}
#Menu li ul {display: none; position: absolute; background: #fafafa; url(fone-tr.png); width: 140px;}
#Menu li li a { width: 120px; background: none;}
#Menu li:hover ul,#Menu li.jshover ul {display: block;}
#Menu li:hover li ul,#Menu li.jshover li ul {display: none; width: 140px;top: -1px; left: 120px;}
#Menu li:hover li:hover ul,#Menu li.jshover li.jshover ul {display: block;}
</style>

<ul id="Menu">
<li><a href="#null">Домой</a></li>
<li><a href="#null">Каталог</a>
<ul>
<li><a href="#null">Вся продукция <img src="arrow.gif" alt="" border="0"></a>
<ul>
<li><a href="#null">По дате</a></li>
<li><a href="#null">Производители</a></li>
<li><a href="#null">Другое</a></li>
</ul>
</li>
<li><a href="#null">Молотки <img src="arrow.gif" alt="" border="0"></a>
<ul>
<li><a href="#null">По дате</a></li>
<li><a href="#null">По производителю</a></li>
</ul>
</li>
<li><a href="#null">Гвозди</a></li>
<li><a href="#null">Доски</a></li>
</ul>
</li>
<li><a href="#null">Новости</a>
<ul>
<li><a href="#null">Новости сайта</a>
</li>
<li><a href="#null">Новости <img src="arrow.gif" alt="" border="0"></a>
<ul>
<li><a href="#null">Архив</a></li>
<li><a href="#null">Пресс-релизы</a></li>
<li><a href="#null">Разное</a></li>
</ul>
</li>
<li><a href="#null">Архив</a></li>
</ul>
</li>
</ul> [/HTML]

12
10 марта 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Robinnovich

Насчет hover вот нашел код который создает псевдо класс JShover, может кто сообразит для input переделать


А вот оно что. Ты пытаешься навесить :hover не на тег A. Ну тогда да, IE вроде только для тега A поддерживает этот псевдо класс. А для прочих элементов пишем JS который через DOM меняет что угодно. Поиск.

477
10 марта 2007 года
Robinnovich
182 / / 02.12.2006
alekciy я пытался найти но возможно запрос к поисковику не правельно формулирую если вас не затруднит сформулируйте запрос а я уже почитаю
15
10 марта 2007 года
shaelf
2.7K / / 04.05.2005
2alekciy не совсем он тэг <а> поддерживает. Он его поддерживает только если hover прописан.
12
10 марта 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: shaelf
2alekciy не совсем он тэг <а> поддерживает. Он его поддерживает только если hover прописан.


Не, разговор о том, что :hover поддержан только для тега А. Или быть может ты имешь в виду не hover, а атрибут href? ;)

12
11 марта 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Robinnovich
alekciy я пытался найти но возможно запрос к поисковику не правельно формулирую если вас не затруднит сформулируйте запрос а я уже почитаю


Начет запроса, это просто нужно прочитать какие нибудть уроки в духе "за 21 занятие секреты HTML, CSS, JS и бог весть чего еще", или там "веб для чайников".

Вот код, разбор что к чему как домашнее задание.

Код:
<head>
<title>Hover</title>

<script type="text/javascript">
var defaultCSSValue;

function hoverIn(elm)
{
    defaultCSSValue = elm.style.backgroundColor;
    elm.style.backgroundColor = 'red';
}
function hoverOut(elm)
{
    elm.style.backgroundColor = defaultCSSValue;
}
</script>
</head>

<body>

<p>Please press any key.</p>
<input type="text" &#111;&#110;mouseover="hoverIn(this)" &#111;&#110;mouseout="hoverOut(this)">


</body>
</html>
477
11 марта 2007 года
Robinnovich
182 / / 02.12.2006
Ну здесь все ясно для определенного объекта меняем его стиль при наведении курсора а потом обратно )) но не совсем то что надо )) это в 1 классе проходил. Ну ладно если некто не знает закинем это гиблое дело ))

Как насчет 4 вопроса я так поседел подумал
Думаю что
Надо
_x=window.event.clientX;
_y=window.event.clientY;

Заменить на вот это:
_x = (document.all) ? window.event.clientX : ??
_y = (document.all) ? window.event.clientY : ??

Только что место знаков вопроса поставить ?

window.event.clientX возвращает позицию курсора по Х &#8211; это работает в ИЕ и Опере а как написать для FireFox ?
477
11 марта 2007 года
Robinnovich
182 / / 02.12.2006
еще если написать вот так
_x = (document.all) ? window.event.clientX : event.pageX;
_y = (document.all) ? window.event.clientY : event.pageX;
то див не появляется ((
12
11 марта 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Robinnovich
Ну здесь все ясно для определенного объекта меняем его стиль при наведении курсора а потом обратно )) но не совсем то что надо )) это в 1 классе проходил.



Что-то не похоже, ибо

Цитата:

Насчет hover вот нашел код который создает псевдо класс JShover, может кто сообразит для input переделать


зачем искать, если проходил?

12
11 марта 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Robinnovich

window.event.clientX возвращает позицию курсора по Х – это работает в ИЕ и Опере а как написать для FireFox ?


Чуть выше, я тебе дал ссылку на пост в этом форуме, там есть сылка на статью о различии event объекта в IE и прочих браузерах. Будь добр прочесть её. Внимательно. Потом еще вот это покури: http://developer.mozilla.org/en/docs/DOM:event#Introduction

15
11 марта 2007 года
shaelf
2.7K / / 04.05.2005
Звиняюсь. Писал hover, а думал про href )))))
12
11 марта 2007 года
alekciy
3.0K / / 13.12.2005
Ну я так и понял. Конечно я знаю об этом, ибо, если ты еще помнишь, об этом тебя я говорил ;) .
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог