questo è molto semplice con jQuery, soprattutto perché si tratta di un semplice y = x divisa:
$("#clickMe").click(function(event){
console.log(event);
if(event.offsetX>event.offsetY){
parent.window.location="http://bing.com";
}else{
parent.window.location = "http://google.com";
}
});
Quello che stiamo facendo è la rilevazione della regione nel div sulla base di ay funzione = x (qualsiasi funzione funzionerebbe comunque). A proposito, sto usando il genitore per jsfiddle solo perché il codice gira in un iframe.
http://jsfiddle.net/JM6JC/4/
[UPDATE ]
Ok, hai chiesto come fare una linea che va nella direzione opposta. Penso che sarebbe meglio generalizzare un po 'questo. La domanda non è altro che una disuguaglianza, che dovresti ricordare dalla matematica della scuola elementare [più o meno :)]. In caso contrario, ecco un video: http://www.khanacademy.org/video/graphing-inequalities?playlist=ck12.org+Algebra+1+Examples
Ho fatto una dimostrazione aggiornata che ha una funzione "isAboveFunction". È semplicemente semplice: passa in coordinate X, Y, esegue una funzione (in senso algebrico) su X e calcola se il risultato è maggiore di Y. In tutte le regioni in cui è maggiore, possiamo ombreggiare quella regione e applica una logica diversa.
Ricorda inoltre che nelle coordinate del computer, X e Y iniziano dalla parte superiore sinistra dello schermo. X (a volte chiamato "sinistra") è quanto lontano dal lato sinistro dello schermo (o in questo caso quanto lontano dal lato sinistro di una scatola.) Analogamente, Y (o "in alto") è quanto lontano dalla cima.
mettere questi due concetti insieme e si può fare qualsiasi funzione che si desidera ho incluso alcuni esempi, ma sentitevi liberi di giocare con essa:.
function isAboveFunction(x,y){
var line;
//CHANGE ME
//line=x*x*.025;
//line= 2*x;
//line = -1*x+50;
line= 200/x;
if(y>line){
return true;
}else{
return false;
}
}
http://jsfiddle.net/JM6JC/33/
Dannazione, ero troppo lento! Mi sono distratto rendendo i triangoli con CSS :). – nrabinowitz
Ha. L'ho anche considerato brevemente, quindi ho capito che potevo semplicemente copiare l'immagine da qui. :) – Jere
Impressionante, cosa succede se si dovesse ruotare l'immagine a 90 gradi. Come potresti codificare l'offset per quello? – EasyCo