【问题标题】:How to flip up shapes in shiny by clicking a button?如何通过单击按钮以闪亮的形状翻转形状?
【发布时间】:2017-12-12 18:35:03
【问题描述】:

我想在我的闪亮应用中包含一个语义形状元素(形状: https://semantic-ui.com/modules/shape.html#/usage)。 我可以使用shinyjsshiny.semantic 构造形状。 但我不知道如何创建一个通过单击来翻转形状的按钮。

这里是一个例子:

UI.R:

    library(shiny)

    # Define UI for application that draws a histogram
    shinyUI(semanticPage(
      shinyjs::useShinyjs(),

      div(class="ui text shape",
          div(class="sides",
              div(class="ui header side active","This side starts visible."),
              div(class="ui header side","This is yet another side"),
              div(class="ui header side","This is the last side")
          )
      ),
 tags$button(id="test",class="ui button","Flip")

      ))

服务器.R:

library(shiny)
library(shinyjs)
#devtools::install_github("Appsilon/shiny.semantic")
library(shiny.semantic)
#devtools::install_github("Appsilon/highlighter")
library(highlighter)
jsCode <- "
$('.shape').shape();
$('.shape').shape('flip up');
$('test').shape('flip up');
"

# Define server logic required to draw a histogram
shinyServer(function(input, output) {
  runjs(jsCode)

})

这会创建按钮和形状,但是如何使按钮翻转形状?

【问题讨论】:

    标签: javascript r user-interface shiny semantic-ui


    【解决方案1】:

    我认为你需要这个 JS 代码:

    jsCode <- "
    $('.shape').shape();
    $('#test').on('click', function(){$('.shape').shape('flip up');});
    "
    

    或者只是:

    jsCode <- "
        $('.shape').shape();
        "
    

    在用户界面中:

      tags$button(id="test", class="ui button", "Flip", onclick="$('.shape').shape('flip up');")
    

    【讨论】:

    • 谢谢,这行得通。但是,如果我将按钮和形状放在 renderUI 中,按钮将不起作用。
    • @R_FF92 嗯...也许这值得提出一个新问题。
    • @R_FF92 我已经编辑了我的帖子以包含第二个解决方案。也许这个适用于 renderUI。
    • 是的。这适用于渲染 UI。您是否有一些有助于理解这种语法的文档?我认为它是一个不错的包,但我经常不知道在代码中的什么位置。
    • @R_FF92 其实这段代码跟包无关。 onclick是按钮的标准html属性,语法$(...)是jQuery库的语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多