From 0bd55c865f8ee513a979e22a8d52a9413edeccc5 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 23 Nov 2025 11:08:02 +0800 Subject: [PATCH 1/3] feat(SlideButton): support prefers-reduced-motion css --- .../Components/Button/SlideButton.razor.scss | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Button/SlideButton.razor.scss b/src/BootstrapBlazor/Components/Button/SlideButton.razor.scss index b364d2abfed..21d90435b5a 100644 --- a/src/BootstrapBlazor/Components/Button/SlideButton.razor.scss +++ b/src/BootstrapBlazor/Components/Button/SlideButton.razor.scss @@ -1,4 +1,4 @@ -@use "../../wwwroot/scss/variables" as *; +@use "../../wwwroot/scss/variables" as *; .slide-button { --bb-slide-list-bg: #{$bb-slide-list-bg}; @@ -112,3 +112,9 @@ border-top-right-radius: 0; border-bottom-right-radius: 0; } + +@media (prefers-reduced-motion: reduce) { + .slide-list { + transition: none !important; + } +} From 97511f1e0c993a576946334b9a5037110fc9f36d Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 23 Nov 2025 13:41:55 +0800 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E6=9D=A1=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Button/SlideButton.razor.js | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/Button/SlideButton.razor.js b/src/BootstrapBlazor/Components/Button/SlideButton.razor.js index a6e87484e40..4ac79facb9a 100644 --- a/src/BootstrapBlazor/Components/Button/SlideButton.razor.js +++ b/src/BootstrapBlazor/Components/Button/SlideButton.razor.js @@ -1,4 +1,4 @@ -import { registerBootstrapBlazorModule } from "../../modules/utility.js" +import { registerBootstrapBlazorModule } from "../../modules/utility.js" import Data from "../../modules/data.js" import EventHandler from "../../modules/event-handler.js" @@ -9,13 +9,31 @@ export function init(id) { } const button = el.querySelector('.btn-slide') const list = el.querySelector('.slide-list') + const listBody = el.querySelector('.slide-body') const slide = { el, button, list } Data.set(id, slide); reset(slide) EventHandler.on(button, 'click', () => { list.classList.toggle('show') - }) + }); + + EventHandler.on(list, 'transitionstart', e => { + if (e.propertyName !== 'height' && e.propertyName !== 'width') { + return; + } + + listBody.classList.remove('scroll'); + }); + EventHandler.on(list, 'transitionend', e => { + if (e.propertyName !== 'height' && e.propertyName !== 'width') { + return; + } + + if (list.classList.contains('show')) { + listBody.classList.add('scroll'); + } + }); EventHandler.on(list, 'click', '.btn-close', e => { e.stopPropagation() list.classList.remove('show') From d83f1480130cfccca9ed3d435f3f277c4416d31f Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 23 Nov 2025 14:12:09 +0800 Subject: [PATCH 3/3] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E5=8A=A8?= =?UTF-8?q?=E7=94=BB=E5=85=B3=E9=97=AD=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Button/SlideButton.razor.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/BootstrapBlazor/Components/Button/SlideButton.razor.js b/src/BootstrapBlazor/Components/Button/SlideButton.razor.js index 4ac79facb9a..3611b3a5b41 100644 --- a/src/BootstrapBlazor/Components/Button/SlideButton.razor.js +++ b/src/BootstrapBlazor/Components/Button/SlideButton.razor.js @@ -61,6 +61,8 @@ export function dispose(id) { const { button, list } = slide ?? {}; EventHandler.off(button, 'click'); EventHandler.off(list, 'click'); + EventHandler.off(list, 'transitionstart'); + EventHandler.off(list, 'transitionend'); } const { SlideButton } = window.BootstrapBlazor;