纯JS实现左右滑动布局和滑动

<!DOCTYPE html>
<html>
<head>
    <meta charset=utf-8>
    <meta name=keywords content=首页>
    <meta name=description content=首页>
    <meta name=author content="">
    <meta name=viewport content="width=device-width,initial-scale=1,user-scalable=0">
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta name="format-detection" content="telphone=no" />
    <link rel="stylesheet" href="./css/global.css">
    <script type="text/javascript">
        var deviveWidth = document.documentElement.clientWidth;
        document.documentElement.style.fontSize = deviveWidth / 7.5 + 'px';
    </script>
    <title>test</title>

    <style>
        .slider{
          overflow: h
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在DevEco Studio上实现移动端块级标签左右滑动,可以使用HarmonyOS提供的ScrollView控件来实现,结合JavaScript的touch事件监听用户触摸事件,实现手指滑动标签的效果。具体实现步骤如下: 1. 在XML布局文件中添加ScrollView控件,设置宽度、高度和滚动方向为水平方向。 ``` <ScrollView id="$+id:scrollView" width="match_parent" height="50vp" orientation="horizontal"> </ScrollView> ``` 2. 在JS文件中获取ScrollView控件,并使用createElement方法动态创建标签元素,设置宽度、高度和样式,并将标签添加到ScrollView中。 ``` var scrollView = this.$element('scrollView'); for (var i = 0; i < 8; i++) { var tab = document.createElement('div'); tab.style.width = '100px'; tab.style.height = '40px'; tab.style.lineHeight = '40px'; tab.style.textAlign = 'center'; tab.style.backgroundColor = '#ccc'; tab.style.marginRight = '10px'; tab.textContent = '标签' + (i + 1); scrollView.appendChild(tab); } ``` 3. 监听touchstart、touchmove和touchend事件,获取手指滑动的距离,并通过修改ScrollView控件的scrollX属性来实现滚动效果。 ``` var scrollView = this.$element('scrollView'); var startX, moveX, endX; scrollView.addEventListener('touchstart', function(e) { startX = e.touches[0].pageX; }); scrollView.addEventListener('touchmove', function(e) { moveX = e.touches[0].pageX; var distance = moveX - startX; // 手指滑动的距离 scrollView.scrollX -= distance; // 修改滚动距离 e.preventDefault(); // 阻止默认事件 }); scrollView.addEventListener('touchend', function(e) { endX = e.changedTouches[0].pageX; }); ``` 完整代码如下: XML布局文件: ``` <ui:Page xmlns:ui="http://www.huawei.com/schema/harmonyos/ui" xmlns="$ns" background="{{color: '#fff'}}"> <ScrollView id="$+id:scrollView" width="match_parent" height="50vp" orientation="horizontal"> </ScrollView> </ui:Page> ``` JS文件: ``` export default { data: {}, onInit() { this.initView(); }, initView() { var scrollView = this.$element('scrollView'); for (var i = 0; i < 8; i++) { var tab = document.createElement('div'); tab.style.width = '100px'; tab.style.height = '40px'; tab.style.lineHeight = '40px'; tab.style.textAlign = 'center'; tab.style.backgroundColor = '#ccc'; tab.style.marginRight = '10px'; tab.textContent = '标签' + (i + 1); scrollView.appendChild(tab); } scrollView.addEventListener('touchstart', function(e) { startX = e.touches[0].pageX; }); scrollView.addEventListener('touchmove', function(e) { moveX = e.touches[0].pageX; var distance = moveX - startX; // 手指滑动的距离 scrollView.scrollX -= distance; // 修改滚动距离 e.preventDefault(); // 阻止默认事件 }); scrollView.addEventListener('touchend', function(e) { endX = e.changedTouches[0].pageX; }); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值