view高度超出屏幕,右侧出现滑动条无法去掉
发布于 5 年前 作者 junyuan 7694 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

问题1、swiper中嵌套canvas会导致绘制的扇形图在swiper横向滑动时不跟随swiper-item一起动。知道swiper中不允许嵌套canvas,可是我们需要swiper这个横向滑动组件,也需要扇形图,那该怎么解决呢?

问题2、view高度大于手机屏幕,这时候右侧就会出现一个灰色滑动条,我该如何去掉呢?项目已基本完成,就差这几个难题了,跪求官方大佬指点。

  • 预期表现

1、横向切换界面,扇形图一起横向滑动;2、去掉view右侧滑动条;

  • 复现路径
  • 提供一个最简复现 Demo

<-----------------prog-sector 组件js文件----------------------------->

// pages/componets/prog-sector.js/

Component({

/**

  * 组件的属性列表

  */

properties: {

arrRates: {

type: Array,

value: [0.1, 0.2, 0.3, 0.4],

},

//环形颜色

arrC3b: {

type: Array,

// 红、蓝、绿、黄

value: [’#f1564d’, ‘#4175c9’, ‘#6fd73c’, ‘#ffb92f’],

},

},

/**

  * 组件的初始数据

  */

data: {

radius: 25,

x: 50,

y: 50,

lineWidth: 50,

startAngle: 0,

},

/**

  * 组件的方法列表

  */

methods: {

// 页面渲染完成后方可绘制

// 绘制圆环

drawSector: function() {

const ctx = wx.createCanvasContext(‘canvas’, this); //创建并返回绘图上下文context对象。

const args = this.data;

/* 开始一个新的路径

      * 底部白色圆环,其它颜色圆环累计值小于360度时才能看到

      */

ctx.beginPath();

ctx.setLineCap(‘butt’)

ctx.setLineWidth(args.lineWidth);

ctx.setStrokeStyle(’#ffffff’);

ctx.arc(args.x, args.y, args.radius, this.angleToRadians(args.startAngle), 2 * Math.PI, false);

ctx.stroke(); //对当前路径进行描边

let curRad = this.angleToRadians(args.startAngle);

for (let i = 0; i < args.arrRates.length; i++) {

ctx.beginPath();

ctx.setLineWidth(args.lineWidth);

let nC3b = args.arrC3b.length;

let color = args.arrC3b[i % nC3b];

ctx.setStrokeStyle(color);

ctx.setLineCap(‘butt’)

let beganRad = curRad;

curRad += this.properties.arrRates[i] * Math.PI * 2;

ctx.arc(args.x, args.y, args.radius, beganRad, curRad, false);

ctx.stroke();

}

ctx.draw();

},

// 角度转弧度

angleToRadians: function(a) {

return a / 180.0 * Math.PI;

}

},

ready: function() {

// 绘图

this.drawSector();

},

})

<-----------------prog-sector 组件wxml文件----------------------------->

<!–pages/componets/prog-sector.wxml–>

<canvas class=“canvas” canvas-id=“canvas”></canvas>

<----------------main-view 页面wxml文件----------------------------->

<!–pages/views/main-view.wxml–>

<swiper style=‘width: 100%; height:2000px;’>

<swiper-item wx:for=’{{[1,2,3,4]}}’ wx:key=‘index’>

<view class=‘vwPageIdx’>page: {{index}}</view>

<block wx:for=’{{[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]}}’ wx:key=‘index’>

<view class=‘vwSectorRoot’>

<prog-sector class=‘prog-sector’></prog-sector>

</view>

</block>

</swiper-item>

</swiper>

<------------------------  main-view页面wxss文件----------------------->

/* pages/views/main-view.wxss */

.vwPageIdx {

width: 100%;

height: 33px;

font-size: 60rpx;

color: springgreen;

background-color: gray;

padding-top: 10rpx;

padding-bottom: 10rpx;

text-align: center;

line-height: 33px;

}

.vwSectorRoot {

display: flex;

width: 100%;

height: 260rpx;

margin-top: 10rpx;

padding-top: 23rpx;

flex-direction: column;

align-items: center;

}

.prog-sector {

width: 100px;

height: 150px;

}

截止到这里代码就贴完了,没贴的都是开发工具创建page页或component的默认代码,或者只有一两句很简单的代码。

回到顶部