手机html5顶部返回上一页,mui返回页面顶部(移动端)代码实例

本文介绍了mui库中的scrollTo方法如何实现在移动端页面快速滚动到顶部,通过实例代码展示了如何在不同平台环境下监听滚动事件并控制返回顶部按钮的显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5b5cbcf2772a4a3f9e720efc74603719.png

点击页面图标,返回到页面顶部,mui中提供了一个方法:scrollTo(),滚动到特定位置。

scrollTo( xpos , ypos [, duration] )

三个参数说明:

xpos

Type: Integer

要在窗口文档显示区左上角显示的文档的 x 坐标

ypos

Type: Integer

要在窗口文档显示区左上角显示的文档的 y 坐标

duration

Type: Integer

滚动时间周期,单位是毫秒

滚动到顶部参数设置如下:scrollTo(0,0,500);  也就是说只需要设置第三个参数多少毫秒滚动到顶部。

mui('.mui-scroll-wrapper').scroll().scrollTo(0,0,100);//100毫秒滚动到顶

上面代码是官方提供的,而我们在实际应用中科院直接使用即可:

mui.scrollTo(0,0,100)

下面是完整代码,亲测有效,JS部分:

mui.plusReady(function() {

//回到顶部

var scrollToTopBox = document.getElementById('scrollToTop');

//返回按钮tap

scrollToTopBox.addEventListener('tap', function(e) {

console.log('click here')

e.stopPropagation();

//mui('#pullrefresh').pullRefresh().scrollTo(0, 0, 100); //滚动到顶部

//window.scrollTo(0, 0, 1000);

mui.scrollTo(0,1000);

});

//Android上监听原生滚动,iOS上监听div滚动,上拉超过一屏后显示按钮,否则隐藏,可自行在条件判断中修改

if (mui.os.android) {

console.log('android')

window.addEventListener('scroll', function(e) {

if (window.pageYOffset >= window.innerHeight && scrollToTopBox.classList.contains('hide'))

scrollToTopBox.classList.remove('hide');

else if (window.pageYOffset 

scrollToTopBox.classList.add('hide');

});

} else {

console.log('ios')

console.log(window.innerHeight)

document.getElementById('pullrefresh').addEventListener('scroll', function() {

console.log('scrolling...')

if (mui('#pullrefresh').pullRefresh().y <= window.innerHeight(-1) && scrollToTopBox.classList.contains('hide')){

scrollToTopBox.classList.remove('hide');

console.log('remove hide')

}

else if (mui('#pullrefresh').pullRefresh().y > window.innerHeight(-1) && !scrollToTopBox.classList.contains('hide')){

scrollToTopBox.classList.add('hide');

console.log('add hide')

}

});

}

});

HTML部分:

  

1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6

css部分:

.hide { display: none; }

.backTop { background: #DDDDDD; border-radius: 50%; position: fixed; right: 10px; bottom: 10%; width: 38px; height: 38px; z-index: 9999; text-align: center; font-size: 18px; color: #666666; padding-top: 8px; opacity: 0.8; }

.s1,.s2{width:100%;height: 250px;background-color: #eee;}

.s2{background-color: #23A6D5;}

思路整理

返回顶部图标默认是隐藏状态,当滚动一屏后会自动出现,代码中使用window.innerHeight来获取当前设备屏幕高度,然后和网页滚动的高度window.pageYOffset进行比较来决定返回顶部图标是显示还是隐藏。

当点击返回顶部按钮后,触发代码

mui.scrollTo(0,0,100)

滚动返回顶部。

### 实现返回一页且不刷新页面的功能 在 MUI 框架中,可以通过 JavaScript 和 HTML 的组合实现返回一页且不刷新页面的功能。以下是一个详细的解决方案[^2]: MUI 提供了对前端路由的支持,可以利用 `mui.back()` 方法来实现返回操作,同时结合浏览器的 `history.pushState` 或 `history.replaceState` 来避免页面刷新。 ```javascript // 使用 MUI 的 back 方法实现返回一页 mui.back(); // 如果需要自定义返回逻辑,可以使用 history API 配合 mui 的路由功能 function goBackWithoutReload() { // 禁用默认的浏览器行为 event.preventDefault(); // 使用 history API 返回一页 window.history.back(); } ``` 为了确保页面不会刷新,还需要配置 MUI 的路由选项,禁用默认的页面加载行为。例如,在初始化 MUI 路由时设置 `subpages` 参数[^3]: ```javascript mui.init({ subpages: [{ url: 'page2.html', // 子页面 URL id: 'page2', // 子页面 ID styles: { // 子页面样式 top: '0px', bottom: '0px' }, show: { // 显示动画 autoShow: true, aniShow: 'pop-in', duration: 200 } }] }); ``` 通过上述方法,可以确保页面切换时不会触发刷新,并且能够正确返回到上一页。 ### 注意事项 - 在使用 `mui.back()` 方法时,请确保当前页面已经正确添加到 MUI 的路由栈中,否则可能会导致无法返回。 - 如果需要更复杂的导航逻辑,可以结合 `window.history` API 和 MUI 的路由事件监听器进行处理[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值