SurveyJS移动端NPS问题自动转为下拉框,能否禁用该响应式行为?
解决SurveyJS移动端NPS问题自动转为下拉框的方法
下面提供几种直接覆盖该响应式行为的方案:
- 固定单问题渲染方式:在NPS问题的配置里,指定
renderAs属性为目标样式("rating"对应数字刻度,"smiley"对应笑脸样式),同时添加responsive配置,强制移动端沿用相同渲染方式,不触发下拉框转换。示例代码:
const npsQuestion = { type: "rating", name: "nps_score", title: "你向他人推荐我们产品的可能性有多大?", rateMin: 0, rateMax: 10, minRateDescription: "完全不可能", maxRateDescription: "非常可能", renderAs: "smiley", // 基础渲染样式 responsive: { mobile: { renderAs: "smiley" // 强制移动端保留笑脸样式 } } };
- 全局禁用评分类问题的移动端下拉转换:如果需要所有评分类问题在移动端都保持原始样式,可以修改SurveyJS的全局默认配置,覆盖响应式规则:
// 全局设置,让所有rating类型问题在全设备上保持指定渲染方式 Survey.SurveyModel.defaultRenderAs = { rating: "rating", smiley: "smiley" };
- CSS强制显示原始控件:如果上述配置方式不生效,可通过自定义CSS强制隐藏下拉框样式,显示原始评分控件:
/* 针对移动端屏幕尺寸生效 */ @media (max-width: 768px) { /* 隐藏下拉框版本的评分控件 */ .sv-rating--dropdown { display: none; } /* 强制显示笑脸/数字刻度控件 */ .sv-rating--smiley, .sv-rating--rating { display: flex !important; } }
内容的提问来源于stack exchange,提问作者Naveen A
相关产品推荐
相关产品推荐

