2014-02-07 4 views
0

Я использую скрипт JS для изменения цветов фона div в зависимости от положения мыши.ссылки наведения и активное изменение цвета в зависимости от положения мыши с помощью Javascript

$(document).mousemove(function(e){ 
    var $width = ($(document).width())/(252 - 23); 
    var $height = ($(document).height())/(253 - 2); 
    var $pageX = 253 - parseInt(e.pageX/$width,10); 
    var $pageY = 200 - parseInt(e.pageY/$height,10) + 2; 
     $("body").css("background-color", "rgb("+$pageY+","+$pageY+","+$pageY+")"); 
}); 

все работает отлично.

То, что я пытаюсь сделать сейчас, это применить те же изменения цвета к моим ссылкам при наведении и при активном действии.

при попытке этого кода, цветовые изменений на парении, в зависимости от положения курсора мыши, но когда MouseOut измененного цвета принадлежит:

$(document).mousemove(function(e){ 
var $width = ($(document).width())/(252 - 23); 
var $height = ($(document).height())/(253 - 2); 
var $pageX = 253 - parseInt(e.pageX/$width,10); 
var $pageY = 200 - parseInt(e.pageY/$height,10) + 2; 
    $("a:hover").css("color", "rgb("+$pageX+","+$pageY+","+$pageX+")"); 
    $("a:hover").css("border-bottom", "1px dotted rgb("+$pageX+","+$pageY+","+$pageX+")"); 
    $("a:active").css("color", "rgb("+$pageX+","+$pageY+","+$pageX+")"); 
    $("a:active").css("border-bottom", "1px dotted rgb("+$pageX+","+$pageY+","+$pageX+")"); 

});

Я думаю, что нужно добавить наведения мыши и MouseOut функцию, но я не знаю, как это сделать ...

Кто-нибудь знает, как я могу это сделать?

вот jsfiddle: http://jsfiddle.net/BrZjJ/36/

Большое спасибо за вашу помощь

+0

Я обновил вашу [скрипку] (http://jsfiddle.net/BrZjJ/38/). Вы должны использовать функции mousemove и mouseleave. – ZiNNED

+0

спасибо @ZiNNED, но как насчет активного класса? при нажатии на изменение цвета из-за зависания, но активный класс должен изменить цвет и что цвет меняется в зависимости от положения мыши ... вы понимаете, что я имею в виду? – mmdwc

ответ

0

вам лучше использовать MouseLeave вместо отведении указателя мыши

$('a').mouseleave(function(e){ 
    $('a').css({'color':'#000', 'border':'none'}); 
}); 
0

Из-за некоторых изменений в приобретает важное скрипку, я буду ответьте здесь вместо того, чтобы оставить его в качестве комментария. Если я правильно понимаю, вы хотите, чтобы цвет ссылки изменился в зависимости от того, где вы двигаетесь по ней, и чтобы ссылка сохраняла этот цвет, когда вы нажимаете на него (или активируете его).

В этом jsFiddle он делает только что:

CSS

a.active { 
    border-bottom: 1px dotted; 
} 
a:visted { 
    color:blue; 
} 
a { 
    color: blue; 
    text-decoration: none; 
} 
a:hover { 
    border-bottom: 1px dotted; 
} 

JavaScript

var pageX, pageY; 

$(document).mousemove(function (e) { 
    var $width = ($(document).width())/(252 - 23); 
    var $height = ($(document).height())/(253 - 2); 
    var $pageX = 253 - parseInt(e.pageX/$width, 10); 
    var $pageY = 200 - parseInt(e.pageY/$height, 10) + 2; 
    $("body").css("background-color", "rgb(" + $pageY + "," + $pageY + "," + $pageY + ")"); 
}); 

$(document).mousemove(function (e) { 
    var $width = ($(document).width())/(252 - 23); 
    var $height = ($(document).height())/(253 - 2); 
    pageX = 253 - parseInt(e.pageX/$width, 10); 
    pageY = 200 - parseInt(e.pageY/$height, 10) + 2; 

    $("a").on("mousemove", function() { 
     $(this).css("color", "rgb(" + pageX + "," + pageY + "," + pageX + ")"); 
    }).on("mouseleave", function() { 
     if (!$(this).hasClass("active")) $(this).removeAttr("style"); 
    }); 

    $("a.active").css("color", "rgb(" + pageX + "," + pageY + "," + pageX + ")"); 
}); 

$("a").on("click", function() { 
    $("a").removeAttr("style").removeClass("active"); 
    $(this).addClass("active").css("color", "rgb(" + pageX + "," + pageY + "," + pageX + ")"); 
}); 

Edit: обновлены, чтобы изменить цвет активной ссылки на перемещение мыши.

+0

еще раз спасибо @ZINNED, но я думаю, что мы пропустили ... когда класс ссылки активен, я хочу, чтобы он менял цвет в зависимости от положения мыши, и когда я двигаю мышью, активный цвет ссылки продолжает меняться ... так что (цвет: черный, например), a: hover (цвет зависит от положения мыши), a: активный (изменение цвета зависит от положения мыши, а при перемещении мыши активный цвет меняется в зависимости от JS-кода. вы видите? – mmdwc

+0

@ user2882154 Я обновил скрипку снова. Теперь активная ссылка меняет цвет в зависимости от положения мыши. Надеюсь, я понял, что ты прав на этот раз :) – ZiNNED

+0

еще раз спасибо @ZINNED ... проблема теперь у меня есть вкладка навигации, а при нажатии на дочернюю вкладку вкладка parrent должна оставаться активной, поэтому с изменением цвета ... и при нажатии на chlid с вашим кодом он удаляет мой родительский активный класс ... вы можете посмотреть эту страницу, чтобы понять а также ? http://rockonbones.com/the-music/ Большое спасибо за вашу помощь ... это действительно сложная проблема! – mmdwc