AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题 / 77031413
Accepted
TarJae
TarJae
Asked: 2023-09-03 15:58:26 +0800 CST2023-09-03 15:58:26 +0800 CST 2023-09-03 15:58:26 +0800 CST

如何使用 jqui_resizing 使 orderInput 项目可调整大小

  • 772

更新:这是我想要的图形解释:有以下功能:1.用鼠标调整大小,2.旋转文本。

在此输入图像描述 这是这个的后续问题Drag and drop withshinyjqui to a grid-table。

第一个答案:我正在尝试使项目或按钮带有标签 A resizeable,如此处所述https://yang-tang.github.io/shinyjqui/:“可调整大小:使用鼠标更改元素的大小。”

这可能吗?我已经尝试过该包的通用功能 jqui_sortable以及自定义 JS 代码,如下例所示:

library(shiny)
library(shinyjqui)

connections <- paste0("droppable_cell_", 1) # id of the grid cells

ui <- fluidPage(
  tags$head(
    tags$script(
      JS(
        "
$(document).on('shiny:connected', function() {
$('#letters').resizable({
alsoResize: '.shinyjqui-sortable-item',
minHeight: 20,
minWidth: 20
});
});


$(function() {
$('[id^=droppable_cell]').sortable({
connectWith: '#letters',
drop: function(event, ui) {
$(this).append(ui.draggable);
}
})
});
"
      )
    ),
# some styling
tags$style(
  HTML(
    "
.grid-table {
width: 150px;
border-collapse: collapse;
}
.grid-cell {
width: 100%;
height: 200px;
border: 1px solid black;
background-color: white;
text-align: center;
margin: 0;
padding: 5px;
}
.grid-cell-text {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
background-color: steelblue;
color: white;
font-size: 18px;
}
.droppable-cell {
background-color: lightgray;
}
.table-container {
display: flex;
position: absolute;
left: 10px;
top: 10px;
margin-top: 0px;
overflow: hidden;
}
"
  )
)
  ),

div(
  class = "table-container",
  div(
    class = "grid-table",
    id = "my_grid",
    div(
      class = "grid-row",
      div(class = "grid-cell grid-cell-text", "my_grid"),
      div(id = "droppable_cell_1", class = "grid-cell droppable-cell", ""),
    )
  ),
  
  orderInput('letters', 'Letters', items = LETTERS[1],
             connect = connections) # defined above
)
)

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

shinyApp(ui, server)
  • 1 1 个回答
  • 38 Views

1 个回答

  • Voted
  1. Best Answer
    Jan
    2023-09-04T02:49:36+08:002023-09-04T02:49:36+08:00

    这是实现这两个功能的一种方法。

    对于可调整大小的按钮,您的JS已经很好了,但您应该将其应用于.btn,而不是#letters。

    旋转按钮可以通过以下方式获得

    $('.btn').on('resize', function() {
        $(this).css({'transform': 'rotate(270deg)',
                     'line-height': $(this).height().toString() + 'px'});
    })
    

    这将产生以下效果:

    1. 如果调整按钮大小(您当然可以删除或更改此触发器),则按钮将旋转 270 度。请注意,更理想的是仅旋转按钮的文本,而不是按钮本身,但我认为必须更HTML深入地操作才能获得这一点。另请注意,它writing-mode: sideways-rl适合于此,但不幸的是,目前并非所有浏览器都支持此功能。

    2. 由于按钮默认情况下具有text-align: center和vertical-align: middle,因此line-height: $(this).height().toString() + 'px'足以设置按钮的文本(此处:“A”)在调整大小后始终显示在按钮的中心。

    这是调整大小后的样子:

    在此输入图像描述

    library(shiny)
    library(shinyjqui)
    
    connections <- paste0("droppable_cell_", 1) # id of the grid cells
    
    ui <- fluidPage(
        tags$head(
            tags$script(
                JS(
                    "
    $(document).on('shiny:connected', function() {
        $('.btn').resizable({
            alsoResize: '.shinyjqui-sortable-item',
            minHeight: 20,
            minWidth: 20
    });
    
    $('.btn').on('resize', function() {
        $(this).css({'transform': 'rotate(270deg)',
                     'line-height': $(this).height().toString() + 'px'});
    })
    });
    
    
    $(function() {
    $('[id^=droppable_cell]').sortable({
    connectWith: '#letters',
    drop: function(event, ui) {
    $(this).append(ui.draggable);
    }
    })
    });
    "
                )
            ),
            # some styling
            tags$style(
                HTML(
                    "
    .grid-table {
    width: 150px;
    border-collapse: collapse;
    }
    .grid-cell {
    width: 100%;
    height: 200px;
    border: 1px solid black;
    background-color: white;
    text-align: center;
    margin: 0;
    padding: 5px;
    }
    .grid-cell-text {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    background-color: steelblue;
    color: white;
    font-size: 18px;
    }
    .droppable-cell {
    background-color: lightgray;
    }
    .table-container {
    display: flex;
    position: absolute;
    left: 10px;
    top: 10px;
    margin-top: 0px;
    overflow: hidden;
    }
    "
                )
            )
        ),
        
        div(
            class = "table-container",
            div(
                class = "grid-table",
                id = "my_grid",
                div(
                    class = "grid-row",
                    div(class = "grid-cell grid-cell-text", "my_grid"),
                    div(id = "droppable_cell_1", class = "grid-cell droppable-cell", ""),
                )
            ),
            
            orderInput('letters', 'Letters', items = LETTERS[1],
                       connect = connections) # defined above
        )
    )
    
    server <- function(input, output, session) {
        
    }
    
    shinyApp(ui, server)
    
    • 1

相关问题

  • 将复制活动的序列号添加到 Blob

  • Packer 动态源重复工件

  • 选择每组连续 1 的行

  • 图形 API 调用列表 subscribedSkus 状态权限不足,但已授予权限

  • 根据列值创建单独的 DF 的函数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    使用 <font color="#xxx"> 突出显示 html 中的代码

    • 2 个回答
  • Marko Smith

    为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类?

    • 1 个回答
  • Marko Smith

    您可以使用花括号初始化列表作为(默认)模板参数吗?

    • 2 个回答
  • Marko Smith

    为什么列表推导式在内部创建一个函数?

    • 1 个回答
  • Marko Smith

    我正在尝试仅使用海龟随机和数学模块来制作吃豆人游戏

    • 1 个回答
  • Marko Smith

    java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.<init>(java.net.URI, java.time.Duration, java.time.Duratio

    • 3 个回答
  • Marko Smith

    为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)?

    • 4 个回答
  • Marko Smith

    为什么库中不调用全局变量的构造函数?

    • 1 个回答
  • Marko Smith

    std::common_reference_with 在元组上的行为不一致。哪个是对的?

    • 1 个回答
  • Marko Smith

    C++17 中 std::byte 只能按位运算?

    • 1 个回答
  • Martin Hope
    fbrereto 为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类? 2023-12-21 00:31:04 +0800 CST
  • Martin Hope
    比尔盖子 您可以使用花括号初始化列表作为(默认)模板参数吗? 2023-12-17 10:02:06 +0800 CST
  • Martin Hope
    Amir reza Riahi 为什么列表推导式在内部创建一个函数? 2023-11-16 20:53:19 +0800 CST
  • Martin Hope
    Michael A fmt 格式 %H:%M:%S 不带小数 2023-11-11 01:13:05 +0800 CST
  • Martin Hope
    God I Hate Python C++20 的 std::views::filter 未正确过滤视图 2023-08-27 18:40:35 +0800 CST
  • Martin Hope
    LiDa Cute 为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)? 2023-08-24 20:46:59 +0800 CST
  • Martin Hope
    jabaa 为什么库中不调用全局变量的构造函数? 2023-08-18 07:15:20 +0800 CST
  • Martin Hope
    Panagiotis Syskakis std::common_reference_with 在元组上的行为不一致。哪个是对的? 2023-08-17 21:24:06 +0800 CST
  • Martin Hope
    Alex Guteniev 为什么编译器在这里错过矢量化? 2023-08-17 18:58:07 +0800 CST
  • Martin Hope
    wimalopaan C++17 中 std::byte 只能按位运算? 2023-08-17 17:13:58 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve