diff --git a/.changeset/huge-baths-remain.md b/.changeset/huge-baths-remain.md
new file mode 100644
index 00000000..38448dee
--- /dev/null
+++ b/.changeset/huge-baths-remain.md
@@ -0,0 +1,5 @@
+---
+"@lynx-example/main-thread": patch
+---
+
+chore: main-thread remove global-bind usage, to preview this example in the future
diff --git a/examples/main-thread/lynx.config.ts b/examples/main-thread/lynx.config.ts
index a2349e6d..f48ad230 100644
--- a/examples/main-thread/lynx.config.ts
+++ b/examples/main-thread/lynx.config.ts
@@ -16,4 +16,9 @@ export default defineConfig({
     pluginReactLynx(),
     pluginTypeCheck(),
   ],
+  environments: {
+    lynx: {},
+    // can open when web supports querySelector
+    // web: {},
+  },
 });
diff --git a/examples/main-thread/src/background-draggable/App.tsx b/examples/main-thread/src/background-draggable/App.tsx
index 3ca674fe..f8451f5d 100644
--- a/examples/main-thread/src/background-draggable/App.tsx
+++ b/examples/main-thread/src/background-draggable/App.tsx
@@ -1,6 +1,18 @@
+import { useState } from "@lynx-js/react";
+import type { ScrollEvent } from "@lynx-js/types";
 import { BackgroundDraggable } from "./BackgroundDraggable.jsx";
 
 export function App() {
+  const [posStyle, setPosStyle] = useState({ x: 0, y: 500 });
+  const onScroll = (event: ScrollEvent) => {
+    const detail = event.detail.scrollTop;
+    const newPos = {
+      x: 0,
+      y: 500 - detail,
+    };
+    setPosStyle(newPos);
+  };
+
   return (
     
          {}}
+          bindscroll={onScroll}
           scroll-y
           style="display:linear;linear-direction:row;width:50%;height:100%"
         >
@@ -22,7 +34,7 @@ export function App() {
           
         
         
-          
+          
         
       
     
diff --git a/examples/main-thread/src/background-draggable/BackgroundDraggable.tsx b/examples/main-thread/src/background-draggable/BackgroundDraggable.tsx
index 876deb10..24f9a3dc 100644
--- a/examples/main-thread/src/background-draggable/BackgroundDraggable.tsx
+++ b/examples/main-thread/src/background-draggable/BackgroundDraggable.tsx
@@ -1,22 +1,7 @@
-import { useState } from "@lynx-js/react";
-import type { ScrollEvent } from "@lynx-js/types";
-
-export function BackgroundDraggable({ size }: { size: number }) {
-  const [posStyle, setPosStyle] = useState({ x: 0, y: 500 });
-
-  let onScroll = (event: ScrollEvent) => {
-    const detail = event.detail.scrollTop;
-    const newPos = {
-      x: 0,
-      y: 500 - detail,
-    };
-    setPosStyle(newPos);
-  };
-
+export function BackgroundDraggable({ size, posStyle }: { size: number; posStyle: { x: number; y: number } }) {
   return (
      {
+    const detail = event.detail.scrollTop;
+    const newPos = {
+      x: 0,
+      y: 500 - detail,
+    };
+    setPosStyle(newPos);
+  };
+
+  const onMtsScroll = (event: any) => {
+    "main thread";
+    const detail = event.detail.scrollTop;
+    const newPos = {
+      x: 0,
+      y: 500 - detail,
+    };
+    lynx.querySelector("#intro")?.setStyleProperty("transform", `translate(${newPos.x}px, ${newPos.y}px)`);
+  };
+
   return (
     
          {}}
+          bindscroll={onBtsScroll}
+          main-thread:bindscroll={onMtsScroll}
           scroll-y
           style="display:linear;linear-direction:row;width:50%;height:100%"
         >
@@ -24,7 +47,7 @@ export function App() {
         
         
           
-          
+          
         
       
     
diff --git a/examples/main-thread/src/main-thread-draggable/BackgroundDraggable.tsx b/examples/main-thread/src/main-thread-draggable/BackgroundDraggable.tsx
index 876deb10..24f9a3dc 100644
--- a/examples/main-thread/src/main-thread-draggable/BackgroundDraggable.tsx
+++ b/examples/main-thread/src/main-thread-draggable/BackgroundDraggable.tsx
@@ -1,22 +1,7 @@
-import { useState } from "@lynx-js/react";
-import type { ScrollEvent } from "@lynx-js/types";
-
-export function BackgroundDraggable({ size }: { size: number }) {
-  const [posStyle, setPosStyle] = useState({ x: 0, y: 500 });
-
-  let onScroll = (event: ScrollEvent) => {
-    const detail = event.detail.scrollTop;
-    const newPos = {
-      x: 0,
-      y: 500 - detail,
-    };
-    setPosStyle(newPos);
-  };
-
+export function BackgroundDraggable({ size, posStyle }: { size: number; posStyle: { x: number; y: number } }) {
   return (
      {
-    "main thread";
-    const detail = event.detail.scrollTop;
-    const newPos = {
-      x: 0,
-      y: 500 - detail,
-    };
-    event.currentTarget.setStyleProperty(
-      "transform",
-      `translate(${newPos.x}px, ${newPos.y}px)`,
-    );
-  };
-
   return (