2017-12-16 10 views
1

私はShinyアプリケーションを作成していますが、この種のレイアウトにはあまり知られていないユーザーの一部は、アプリケーションがタブで動作していて、どこからホームページに行くのですか?shiny:画像をクリックするとタブが変わります

私はメインページに大きなインフォーメーションを表示したいので、クリックすると自動的に2番目のタブがアクティブになります。私は、画像へのリンクを追加する方法を知っている:

tags(a(img(src="image.png"), href="link.com")) 

そして、私はプログラム的に別のタブを選択する方法を知っている:

updateTabsetPanel(session, inputId="navbar", selected="tab2") 

しかし、どのようにこれらの2つのアクションを組み合わせること? ありがとう、

+1

タブパネルではなくNavBarメニューを使用することを考えましたか? –

+0

まあ、私はアプリのホームページに多くの情報を入れなければならなかったので、タブはあまりにも明白ではありません。画像をクリックするだけでメニューを追加することはできますが、メニューを追加すれば解決できるかどうかはわかりません。 – agenis

+0

ちょっと考えました。ほとんどのテーマでNavbarメニューが目立つようになっており、Navbarの色などを簡単にCSSコードでカスタマイズできます。 –

答えて

2

画像をidとし、onclick()の機能をshinyjsから使用できます。使用例:

require(shiny) 
require(shinyjs) 


ui <- fluidPage(
    img(id="my_img",src="image.png",style="cursor:pointer;"), 
    useShinyjs(), 
    tabsetPanel(id="navbar", 
       tabPanel("tab1", p("This is tab 1")), 
       tabPanel("tab2", p("This is tab 2")) 
) 
) 



server <- function(input, output,session){ 

    shinyjs::onclick("my_img", updateTabsetPanel(session, inputId="navbar", selected="tab2")) 

} 

shinyApp(ui,server) 

+0

フロリアンさんに感謝、私は本当に良いものでいっぱいのshinyjsパッケージを掘るべきだと思う。このソリューションは、マウスのアイコンがホバー上で変わらないという事実を除いて、完璧に機能します(クリック可能なリンクであることを示しています) – agenis

+0

こんにちはagenis、shinyjsはDean Attaliのすばらしいパッケージです。私はブログ/ウェブサイトから多くのことを学びました。とにかく、カスタムCSSでカーソルを変更することができます。更新された例を参照してください。 – Florian

+0

ありがとう! – agenis

関連する問題