2011-01-06 5 views

Antwort

7

Für die Zukunft, Sie sprechen über „Image-Maps“ - gibt es verschiedene Tutorials für diese, zB http://www.onextrapixel.com/2009/04/30/how-to-create-multiple-links-on-a-single-image-with-image-map/

Soweit ich weiß, das ist nicht wirklich eine Schiene Frage ist, wie Image-Maps a sind total Front-End Sache: wie js, beziehen sie sich nur auf die Seite wie im Browser gesehen. Was Schienen betrifft, ist es beim Klicken auf einen Link egal, ob dieser Link auf einer Imagemap war oder nicht.

Also, es ist nur einige Roh-HTML, die Sie in Ihre Ansicht Vorlage legen würde.

Ich nehme an, Sie könnten die Image-Maps datengetrieben machen, so dass Sie zum Beispiel einen Image-Dateinamen in der db speichern und dann alle Map-Daten auch in der db in einer image_maps-Tabelle speichern. Es lohnt sich nur, wenn Sie die Imagemaps benutzerdefinierbar machen möchten, wie zum Beispiel das Flimmern. (flickr lässt Sie ein Rechteck auf ein vorhandenes Foto zeichnen und es mit etwas Text markieren)

+0

Das sieht nach einer guten Lösung aus. – s84

+0

Ich habe diesen Link früher gefunden, aber ich habe Probleme mit der Implementierung der Lösung in haml. – janegee

0

Dies ist mehr von einer Javascript/Flash-Art Sache. Sie können divs mit Links absolut positionieren, wenn Sie genau wissen, wohin die Links gehen müssen, und Sie nicht nach einem Bereich suchen, auf den der Benutzer klicken kann, da dies nur eine Verknüpfung mit Text an einer bestimmten Position erzeugt.

Sounds zu mee wie Sie müssen eine Flash-App machen oder JavaScript Workaround. Dies ist kein Problem vom Typ "Rails", sodass Ihre Lösung nicht von Ruby/Rails kommt.

2

verwenden url_for nur die benötigte URL

<img usemap="image_link" src="..." alt="" width="235" height="32" style="display: block;" /> 
<map name="image_link"> 
    <area href="<%= url_for root_path %>" alt="Home" coords="0,0,189,19" shape="rect" /> 
    <area href="<%= url_for :controller => "post", :action => "all" %>" alt="All posts" coords="190,0,386,22" shape="rect" /> 
    <area href="<%= url_for new_resource1_path %>" alt="New resource1" coords="387,0,657,23" shape="rect" /> 
</map> 

die root_path ist definiert als die Homepage und resource1 als Ressource in config/routes.rb zu erzeugen.