Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Курсор не хочет стоять указательным пальчиком.


Автор: Gift 6.4.2006, 07:28
Может кто подскажет в чём заковыка?
Кнопка-рисунок находится в ячейке таблицы и является гиперссылкой. По задумке, при наведении на кнопку появляется тултип с пояснением. Скрипт нашел в рунете.
Мне хотелось бы, чтобы при наведении мышки на кнопку появлялся пальчик (cursor:hand), но он видится только при передвижении мышки (когда она на кнопке), а в 'стоячем' состоянии почему-то стрелка видится.
Помогите, кто знает, в чём дело!?
Саму страницу можно посмотреть на
http://lbznat.narod.ru/index.htm
(Страница в разработке, так что не обращайте внимания на другие вещи - интересует только курсор)

Автор: Burrr 6.4.2006, 08:09
поставь не cursor:hand, а cursor:pointer
должно помочь

Автор: R.M. 6.4.2006, 09:58
Burrr, ты немного не прав. Надо так.
Код

cursor: pointer; cursor: hand;

Автор: Gift 6.4.2006, 10:10
Burrr, пробовал. В Div вставлял и в <a href... Не помогает.

Автор: Gift 6.4.2006, 11:44
Заметил одну деталь.
Если отключиться от Инет и навести курсор на кнопку, то с пальчиком становится, но при этом фон и рисунок в тултипе исчезают.

Что можете посоветовать?

Автор: Illuminaty 6.4.2006, 11:56
Может тебе кэш обновить?
У меня в FF1.5 и IE6 все отображается как ты хотел

Автор: Goddog 6.4.2006, 12:00
Напиши в тег <img> вот такую строчку: style="cursor:hand;"
Например:
<img src="god.gif" border="0" hspace="0" style="cursor:hand;">

Автор: R.M. 6.4.2006, 12:40
Goddog, ты бы уж если давал ответ то правильный, темболее что правильный дан выше
Код

<img src="god.gif" border="0" hspace="0" style="cursor: pointer; cursor:hand;">

Автор: Gift 6.4.2006, 13:34
И кеш чистил, и style="cursor: pointer; cursor:hand; в img вставлял - стрелка остаётся, а пальчик только при движении.

Проверял с двух разных ПК (MyIE и Maxton)- одно и тоже.

Автор: smartov 6.4.2006, 13:57
Это из-за того, что так написан скрипт тултипа.
Он ловит события наведения мышки. И видать написан так, что ИЕ забывает их отрабатывать, или что-то в этом роде.
Под Firefox анпример все работает прекрасно. Остается "лапка".
Так что выкинь или тултип или IE smile
Добавлено @ 13:58
Куксикус,
Цитата(Куксикус @ 6.4.2006, 11:40 Найти цитируемый пост)
cursor:hand;

А это для какого браузера такая заточь?

Автор: Gift 6.4.2006, 14:24
Там три файла js, по-моему этот отвечает за мышь.
Может, кто разрулит?
_____________________________________
Код

var Tooltip = {
    followMouse: true,
    offX: 8,
    offY: 12,
    tipID: "tipDiv",
    showDelay: 100,
    hideDelay: 200,
    
    ready:false, timer:null, tip:null, 
  
    init: function() {  
        if ( document.createElement && document.body && typeof document.body.appendChild != "undefined" ) {
            if ( !document.getElementById(this.tipID) ) {
                var el = document.createElement("DIV");
                el.id = this.tipID; document.body.appendChild(el);
            }
            this.ready = true;
        }
    },
    
    show: function(e, msg) {
        if (this.timer) { clearTimeout(this.timer);    this.timer = 0; }
        this.tip = document.getElementById( this.tipID );
        if (this.followMouse) // set up mousemove 
            dw_event.add( document, "mousemove", this.trackMouse, true );
        this.writeTip("");  // for mac ie
        this.writeTip(msg);
        viewport.getAll();
        this.positionTip(e);
        this.timer = setTimeout("Tooltip.toggleVis('" + this.tipID + "', 'visible')", this.showDelay);
    },
    
    writeTip: function(msg) {
        if ( this.tip && typeof this.tip.innerHTML != "undefined" ) this.tip.innerHTML = msg;
    },
    
    positionTip: function(e) {
        if ( this.tip && this.tip.style ) {
            // put e.pageX/Y first! (for Safari)
            var x = e.pageX? e.pageX: e.clientX + viewport.scrollX;
            var y = e.pageY? e.pageY: e.clientY + viewport.scrollY;
    
            if ( x + this.tip.offsetWidth + this.offX > viewport.width + viewport.scrollX ) {
                x = x - this.tip.offsetWidth - this.offX;
                if ( x < 0 ) x = 0;
            } else x = x + this.offX;
        
            if ( y + this.tip.offsetHeight + this.offY > viewport.height + viewport.scrollY ) {
                y = y - this.tip.offsetHeight - this.offY;
                if ( y < viewport.scrollY ) y = viewport.height + viewport.scrollY - this.tip.offsetHeight;
            } else y = y + this.offY;
            
            this.tip.style.left = x + "px"; this.tip.style.top = y + "px";
        }
    },
    
    hide: function() {
        if (this.timer) { clearTimeout(this.timer);    this.timer = 0; }
        this.timer = setTimeout("Tooltip.toggleVis('" + this.tipID + "', 'hidden')", this.hideDelay);
        if (this.followMouse) // release mousemove
            dw_event.remove( document, "mousemove", this.trackMouse, true );
        this.tip = null; 
    },

    toggleVis: function(id, vis) { // to check for el, prevent (rare) errors
        var el = document.getElementById(id);
        if (el) el.style.visibility = vis;
    },
    
    trackMouse: function(e) {
     e = dw_event.DOMit(e);
      Tooltip.positionTip(e);
    }
    
}

Tooltip.init();



Если надо, то и другие два выложу.

Автор: Gift 6.4.2006, 16:56
И ещё кое-что заметил.
Дуказатель на кнопке, а страница грузится медленно. Пальчик есть. Показался тултип с фоном - пальчик есть. Показался рисунок глаза - пальчик исчез.

Может это что-то прояснит?

Автор: R.M. 7.4.2006, 09:07
Цитата(smartov @ 6.4.2006, 14:57 Найти цитируемый пост)
А это для какого браузера такая заточь?

cursor: hand; для ИЕ и вроде Оперы
cursor: pointer; для FF и Мозиллы
Чтобы во всех браузерах смотрелось ок надо писать оба но первым чтобы стоял cursor: pointer; а после него шёл cursor: hand;

Автор: smartov 7.4.2006, 10:55
Куксикус,
Цитата(Куксикус @ 7.4.2006, 08:07 Найти цитируемый пост)
cursor: hand; для ИЕ и вроде Оперы

IE 6.0
Opera 9
cursor:pointer понимают прекрасно
IE 5 не понимал. Но пора забыть о таких архаизмах ;)


Gift, а js код я и так посмотреть могу smile Но разрывать чужой код при то мне маленький думаю мало у кого есть желание.

Автор: R.M. 7.4.2006, 13:54
smartov,
Цитата(smartov @ 7.4.2006, 11:55 Найти цитируемый пост)
Но пора забыть о таких архаизмах ;)

Ты зря так, у многих и 4 стоит smile

Автор: smartov 7.4.2006, 16:55
Цитата(Куксикус @ 7.4.2006, 12:54 Найти цитируемый пост)
Ты зря так, у многих и 4 стоит

Стоит != юзают
Да и http://www.w3schools.com/browsers/browsers_stats.asp

Цитата(Gift @ 6.4.2006, 15:56 Найти цитируемый пост)
Может это что-то прояснит?

Да. Это обьясняет что все ломается когда догружается этот дурацкий тултип smile Найди другой

Автор: R.M. 10.4.2006, 11:24
ИМХО бредовая статистика. Неизвестно откуда её вообще бирут. И какой страны? Или это по всему миру? smile

Автор: smartov 10.4.2006, 13:32
Цитата(Куксикус @ 10.4.2006, 10:24 Найти цитируемый пост)
ИМХО бредовая статистика

Статистика с известного как видишь сайта
Есть лучше - предоставь - обсудим. Но лчуше в другой теме. Чтоб оффтоп не разводить

Автор: set36 20.4.2006, 00:01
Думаю надо:
Код
cursor: hand, pointer;

По спецификации, если первое значение битое, то применяется второе,
если и второе битое то третье., итд. 

Автор: R.M. 20.4.2006, 09:49
set36, а ты сам проверял этот код? Я проверил и мозилла руку не показывает так что надо 2 раза писать cursor и на первое место ставить pointer 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)