当前位置:   article > 正文

小程序js通过判断DOM元素节点位置来自动显示“更多”按钮_vue判断元素溢出 后面出现更多按钮

vue判断元素溢出 后面出现更多按钮

Sham最近因为在做一个食堂订餐功能,因为订单中内容比较多,又不想初始状态全部展示,希望类似文字过长显示省略号那样,在最后显示一个“more”按钮。

实现方法和代码如下,记录备忘

JS部分

  1. data: {
  2. showmorebtn:{}
  3. //这里初始化,用户后面往这个对象中添加对应id的判断用数据
  4. },
  5. //主要用于循环并赋值
  6. checkheight(that){
  7. var that = this;
  8. var items = that.data.mealorders;
  9. //获取mealorder数据数组,循环执行是否超高并显示more按钮
  10. for(var i=0; i<items.length;i++){
  11. that.checkoverflow(that,i);
  12. }
  13. },
  14. //超高时显示more按钮
  15. checkoverflow(that,id){
  16. var query = wx.createSelectorQuery();
  17. //创建节点查询器
  18. //获取父对象id的位置信息,生成后会是在res数组的第一个
  19. query.select('#f'+id).boundingClientRect();
  20. //获取子对象id的位置信息,res数组第二个数据
  21. query.select('#c'+id).boundingClientRect();
  22. //如果上面再继续加,则会依次为res数组的第三……个数据
  23. //生成位置信息数组
  24. query.exec(function(res) {
  25. //res就是 所有标签为对应id的元素的信息 的数组
  26. //console.log(res);
  27. //这里的showmorebtn在js的初始data里设置 showmorebtn :{}
  28. var showmorebtn = that.data.showmorebtn;
  29. if(res[1].height > res[0].height+10){
  30. //当子对象高度超过父对象高度时,表示内容太多了,需要显示more按钮,渲染数据用于前端判断
  31. showmorebtn[id] = true;
  32. that.setData({
  33. showmorebtn:showmorebtn
  34. })
  35. }
  36. })
  37. },

wxml部分

  1. <!--这里的用index+1是因为发现直接用index的话,如果index0时,会被判断为false-->
  2. <view class="details {{showdetail == index+1 ? '' : 'h55'}}" id="f{{index}}">
  3. <view id="c{{index}}">
  4. <view class="foods" wx:for="{{item.orderdetail}}" wx:key="index" wx:for-item="foods">
  5. {{index}}:{{foods.number}}份
  6. </view>
  7. </view>
  8. </view>
  9. <view class="showdetail white" id="{{index+1}}" bindtap="showdetail" wx:if="{{showmorebtn[index]}}">
  10. <view class="bgblue center"><text>more</text></view>
  11. </view>

最后是WXSS部分,其他没什么,就一个h55,其他的样式不影响

  1. .h55{
  2. height:55rpx;
  3. overflow: hidden;
  4. transition: all 0.4s ease-out 0s;
  5. -webkit-transition: all .4s ease-out;
  6. -moz-transition: all .4s ease-out;
  7. }

一个在前往码农道路上走走停停的行政文员

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/91743
推荐阅读
相关标签
  

闽ICP备14008679号