精华内容
下载资源
问答
  • 1:布局文件使用recyclerview显示四列并加入阴影及点击按钮控件 <?xml version="1.0" encoding="utf-8"?> ...-- //展开更多,点击收起--> ...

    在这里插入图片描述
    在这里插入图片描述
    1:布局文件使用recyclerview显示四列并加入阴影及点击按钮控件

     <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/main_bg"
        android:orientation="vertical">
                <FrameLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
    
                    <androidx.recyclerview.widget.RecyclerView
                        android:id="@+id/region_recy"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="12dp"
                        app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
                        app:spanCount="4" />
    
                    <!--                阴影控件设置半透明-->
                    <TextView
                        android:id="@+id/txt_yinying"
                        android:layout_width="match_parent"
                        android:layout_height="30dp"
                        android:layout_gravity="bottom"
                        android:background="#b3ffffff" />
                </FrameLayout>
    
                <!--            //展开更多,点击收起-->
                <RelativeLayout
                    android:id="@+id/rl_openall"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:padding="12dp">
    
                    <TextView
                        android:id="@+id/txt_open"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@color/main_bg"
                        android:gravity="center"
                        android:text="展开更多"
                        android:textColor="@color/txtblue"
                        android:textSize="14sp" />
                </RelativeLayout>
    
    </LinearLayout>
    

    2:代码中设置全部显示数据和收起显示数据

    //regionBeans接口list集合数据
     private List<String> mList = new ArrayList<>();
        private List<String> HideList = new ArrayList<>();
                for (int i = 0; i < regionBeans.size(); i++) {
                         mList.add(regionBeans.get(i).getName());
                        }
                        //收起显示的数据仅显示16条
                        for (int i = 0; i < 16; i++) {
                                HideList.add(mList.get(i));
                        }
                        //适配器
                        mRegionAdapter = new RegionAdapter(KeywordActivity.this);
                        regionRecy.setAdapter(mRegionAdapter);
                        //默认设置收起时的数据
                        mRegionAdapter.setHideList(HideList);
    

    RegionAdapter适配器中

    public class RegionAdapter extends RecyclerView.Adapter<RegionAdapter.ViewHolder> {
        private Activity activity;
        private List<String> list;
    
        public RegionAdapter(Activity activity) {
            this.activity = activity;
        }
        @NonNull
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(activity).inflate(R.layout.rmsf_item, parent, false);
            return new ViewHolder(view);
        }
    
        @Override
        public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
            holder.mRmsfname.setText(list.get(position));
        }
    
        @Override
        public int getItemCount() {
            return list.size();
        }
    
    //显示收起时数据
        public void setHideList(List<String> newList) {
            this.list = newList;
            notifyDataSetChanged();
        }
    
    //显示全部数据
        public void setOpenList(List<String> openList) {
            this.list = openList;
            notifyDataSetChanged();
        }
    
        public class ViewHolder extends RecyclerView.ViewHolder {
    
            private final TextView mRmsfname;
    
            public ViewHolder(@NonNull View itemView) {
                super(itemView);
                mRmsfname = itemView.findViewById(R.id.rmsf_name);
            }
        }
    }
    
    

    3:点击收起展开按钮执行适配器的两个方法

      case R.id.rl_openall:
                    if (txtOpen.getText().toString().equals("展开更多")) {
                        txtOpen.setText("点击收起");
                        txtYinying.setVisibility(View.GONE);
                        mRegionAdapter.setOpenList(mList);
                    } else {
                        txtOpen.setText("展开更多");
                        txtYinying.setVisibility(View.VISIBLE);
                        mRegionAdapter.setHideList(HideList);
                    }
    
                    break;
    
    展开全文
  • H5+css实现展开更多内容

    千次阅读 2020-04-24 16:57:38
    <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />...

    <html>
    <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <title>点击查看全文</title>
    <style>
    *{
        margin:0;
        padding:0;
    }
    html,body{
        height:100%;
    }
    body{
        overflow-y: scroll;
    }
    .wrap{
        max-height:500px;  /*设置默认高度*/
        overflow: hidden;
        position:relative;
    }
    p{
        font-size: 16px;
        line-height: 20px;
    }
    /*展开全文*/
    .unfold-field{
        position:absolute;
        font-size: 0;
        bottom:0;
        width:100%;
        height:124px;
        z-index: 3;
    }
    .unfold-field .unflod-field_mask {
        height: 78px;
        width: 100%;
        background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,hsla(0,0%,100%,0)),to(#fff));
        background-image: linear-gradient(-180deg,hsla(0,0%,100%,0),#fff);
    }
    .unfold-field_text{
        cursor: pointer;
        width:100%;
        color: #406599;;
        height:46px;
        font-size: 0px;
        line-height: 46px;
        text-align: center;
        background:#fff;
    }
    .unfold-field_text span{
        display:inline-block;
        font-size: 16px;
        height:46px;
        line-height: 46px;
    }
    .unfold-field_text span::after{
        content:"";
        vertical-align: middle;
        background:url(http://c1.adline.com.cn/static/img/bottom.png);
        background-size: contain;
        background-repeat: no-repeat;
        width: 9px;
        height: 6px;
        display: inline-block;
        margin-left: 5px;
    }
    </style>
    </head>
    <body>
        <div class="wrap" >
            <div class="content"> 
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <!--<img src="http://rs.0.gaoshouyou.com/i/fc/9a/3efcc6287c9ab0a3c3eadc723205482d.jpg" width="100%" alt="" />-->
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
                        <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>                    <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>
            </div>
            <div class="unfold-field">
                <div class="unflod-field_mask"></div>
                <div class="unfold-field_text"><span>展开全文</span></div>
            </div> 
        </div>
    </body>
    <script type="text/javascript">
            function unfold(){
                var doc =  document;   
                var wrap=doc.querySelector(".wrap");
                var unfoldField=doc.querySelector(".unfold-field");
                unfoldField.οnclick=function(){
                    this.parentNode.removeChild(this);
                    wrap.style.maxHeight="1200px";
                }
                document.onreadystatechange = function () { //当内容中有图片时,立即获取无法获取到实际高度,需要用 onreadystatechange
                    if (document.readyState === "complete") {
                        var wrapH=doc.querySelector(".wrap").offsetHeight;
                        var contentH=doc.querySelector(".content").offsetHeight;
                        if(contentH <= wrapH){  // 如果实际高度大于我们设置的默认高度就把超出的部分隐藏。
                            unfoldField.style.display="none";
                        } 
                    }
                }
            }
            unfold(); 
            
    </script>
    </html>

    展开全文
  • vue 点击展开更多+收起

    千次阅读 2019-09-24 18:49:21
    '查看更多':'收起'}} 2、data数据 data() { return { showMore: true, list:[...] } } 3、计算属性(set方法里的val值就是get方法返回的值) computed: { showList: { get: function () { if (this.showMore) { if ...

     1、视图标签

    <div>
            <p v-for="(item, index) in list">
                <span>{{item.title}}</span>
                <span>{{item.name}}</span>
             </p>
    </div>
    <div v-if="showList.length > 6" v-on:click="showMore=!showMore">
             <span>{{showMore?'查看更多':'收起'}}</span> 
    </div>

     2、data数据

    data() {
          return {
            showMore: true,
            list:[...]
          }
    }

     3、计算属性(set方法里的val值就是get方法返回的值)

    computed: {
       showList: {
          get: function () {
             if (this.showMore) {
                 if (this.list.length < 4) {
                    return this.list
                 }
                 let newArr = []
                 for (var i = 0; i < 3; i++) {
                     let item = this.list[i]
                     newArr.push(item)
                  }
                  return newArr
               }
               return this.list
            },
            set: function (val) {
                this.showList= val
            }
        }
    }

    4、效果图

    展开全文
  • 业务开发中会有一些场景,超出一行显示 … 与展开更多按钮,展开更多按钮可以切换显示一行还是全部内容,少于一行正常显示; 解决方案 分析下问题: 一般这种需求不好实现的原因是,在移动端,每行显示的字数的有...

    微信小程序设置超出行显示 ... 与展开更多按钮

    问题描述

    业务开发中会有一些场景,超出一行显示 … 与展开更多按钮,展开更多按钮可以切换显示一行还是全部内容,少于一行正常显示;

    解决方案

    分析下问题: 一般这种需求不好实现的原因是,在移动端,每行显示的字数的有可能在不同机型会有差异,所以就使开发者无法知道这些内容是否超过一行,是否该显示展开更多按钮。

    绕开上述原因,曲线救国,我们在每次页面渲染完成之后再去获取承载内容的元素宽度,和承载内容的元素的外层父级盒子的宽度相对比,如果宽度之差小于半个字体的大小(是为了防止一点误差),则显示 … 的样式,显示展开更多按钮,相反,则隐藏更多按钮。

    最终效果如下:

    image

    主要代码如下

    <view class="coupon-remark-wrapper">
        <!--id = toggle-warpper 为包裹内容的父级元素-->
        <view class="coupon-remark-content" id="toggle-wrapper">
            <!--id = toggle-content 为内容的容器,控制显示全部内容还是显示超出一行... -->
            <view id="toggle-content" class="{{toggleParams.toggleFlag === 1?'ellipsis':''}}" hidden="{{toggleParams.toggleFlag === 0}}">
                {{couponData.limitRemark}}
            </view>
            <!--class = toggle-icon 为展开更多按钮-->
            <image class="toggle-icon {{toggleParams.toggleFlag === 1?'hide':'show'}}" wx:if="{{toggleParams.toggleShow}}" bindtap="toggleHandler" src="https://img.dmallcdn.com//dshop/201904/b1c5af14-f29a-494c-9e3b-899f1a2cf218"></image>
        </view>
    </view>
    
    .coupon-remark-wrapper {
      padding: 20rpx;
      padding-top: 33rpx;
      padding-right: 60rpx;
      margin-top: -20rpx;
      line-height: 1;
      box-sizing: border-box;
      color: #666666;
      background-color: #fff;
      position: relative;
      z-index: 1;
    }
    .coupon-remark-content {
      width: 100%;
      view {
        font-size: 22rpx;
        line-height: 1.5;
        word-break: break-all;
        display: inline-block;
        max-width: 100%;
      }
      .ellipsis{
        text-overflow:ellipsis;
        white-space: nowrap;
        overflow: hidden;
      }
      .toggle-icon {
        width: 30rpx;
        height: 30rpx;
        position: absolute;
        right: 20rpx;
        top: 35rpx;
        transition: all 0.2s linear;
        &.show {
          transform: rotate(180deg);
        }
      }
    }
    
    const couponItemBehavior = Behavior({
    	data: {
    		// 控制说明文案收起/展开
    		toggleParams: {
    			toggleFlag: 1, //0收起1展开
    			toggleShow: false, //默认不显示toggleIcon
    		},
    	},
    	ready() {
    		this._checkRemarkToggle();
    	},
    	methods: {
    		// 获取指定元素实际宽度
    		_getElementWidth(id = "") {
    			let _query = this.createSelectorQuery();
    			return new Promise(resolve => {
    				_query.select(id).fields({
    					size: true,
    				}, (res) => {
    					resolve(res.width)
    					_query = null;
    				}).exec();
    			});
    		},
    
    		// 说明文字收起/隐藏事件
    		toggleHandler() {
    			const {toggleFlag} = this.data.toggleParams;
    
    			this.setData({
    				toggleParams: {
    					toggleFlag: toggleFlag === 0 ? 1 : 0,
    					toggleShow: true
    				}
    			})
    		},
    		/*
    		* 检测说明文字是否需要隐藏/收起操作
    		* 对比文字外层固定宽度容器元素宽度wrapperWidth与当前文字元素宽度contentWidth
    		* 若相差小于10则说明超出一行
    		* */
    		_checkRemarkToggle() {
    			Promise.all([
    				this._getElementWidth('#toggle-wrapper'),
    				this._getElementWidth('#toggle-content')]
    			).then(res => {
    				const wrapperWidth = res[0];
    				const contentWidth = res[1];
    
    				const {limitRemark, startDate, endDate, statusCode} = this.properties.couponData;
    
    				if (wrapperWidth - contentWidth < 10) {
    					this.setData({
    						toggleParams: {
    							toggleFlag: 1,
    							toggleShow: true
    						},
    						timeArea: `${startDate}-${endDate}`,
    						unableImageSrc: UNABLE_IMAGE[statusCode]
    					})
    				}
    			})
    		}
    	}
    });
    

    总结:
    在这里只是个抛砖引玉提供一个思路,小程序中可以这样实现,在 H5 中也可以这样实现,如果有更好的方案,欢迎讨论提供!

    展开全文
  • vue点击展开更多,点击收起

    千次阅读 2019-01-31 19:26:20
    '收起':'查看更多优惠'}} < span class = " iconfont { ' show ' ?icon-xiajiantou:icon-up} " > span > div > div > < div class = " choiceness_item " > < div class = " main " > < div ...
  • win10浏览器不能展开全部界面 1、按下“Win+R”组合键,在框中输入“inetcpl.cpl”,点击确定打开“internet 选项”; 2、点击“高级”选卡,点击底部的“重置”按钮; 3、在“重置 Internet Explorer 设置”...
  • 在页面中点击更多后下面展开一个层,再点击就隐藏用的 css jquery 很简单,但是需要自己引入一个jquery文件
  • vue 点击展开显示更多 点击收起部分隐藏 要求: 只展示几条数据,其余的收起。点击显示更多时候,查看全部 如下:以百度云的页面为例 直接上代码: 1.html部分: <div> <div style="background-color:#...
  • 最近在公司项目中做一个商品展示的功能,要求在分类后 ,对每个类进行展开、收起操作。想法就是在ListView中嵌套一个ListView,通过动态的显示和隐藏ListView,实现展开和收起操作。难点:解决了ListView的动态设置...
  • html: 定义变量: 页面加载时执行或请求数据之后获取宽度: 效果:
  • vuejs数据超出单行显示更多,点击展开剩余数据
  • 1:页面上的菜单选项,选项内容是后台接口返回的数据,现在的需求是当选项的内容超出一行,在这行的右面显示更多,点击更多,显示剩下的选项的内容 看下效果图 这是展开的效果图 下面先看下我的html部分代码 &...
  • vue 段落文字太长点击展开与收起 效果截图 组件调用 vue部分 <Unfold data="这里是文章测试标题,含标点一共二十个字。这里是文章测试标题,含标点一共二十个字。这里是文章测试标题,含标点一共二十个字。这里...
  • 仿微信文字多于4行可以收起,在点击还可以展开看全部内容
  • 展示更多的代码 detailFormatter 这个函数返回的是html代码  detailView:true,  detailFormatter:function(index,row){  var str = " ";  str+= "";  str+= "书 &nb
  • Android中SpannableString学习以及实现TextView的显示更多展开)和收起功能
  • android点击展开收起

    热门讨论 2013-01-28 10:14:15
    android点击展开收起,有需要的可以看看
  • 看起来很眼熟吧,很应用中都有这样的使用场景,其实就是控制textview的maxlines属性,来做的。在这里就简单的说下定义的过程 1.stretchy_text_layout.xml --这是创建一个布局,用来装裱以上展示的控件 ...
  • 利用vue实现“显示更多”功能

    千次阅读 2018-05-04 00:36:11
    利用vue实现“显示更多”功能 当网页内容比较多时,将内容全部显示一方面会显得冗余,另一方面并不是每个人都喜欢看所有内容。因此,为了提高用户体验,一些网站便将内容显示一部分,然后使用“显示更多”功能来...
  • 上面是文章的内容,下面有个评论和点赞。要保证无论文章多长,下面的评论和点赞位置一直要在下面,...还有一种就是通过一个查看更多的按钮,点击了才会展开显示所有的内容,不然显示一个页面的。    标题  时间
  •  当我们点击“阅读更多”时,将展开剩余内容。  我们可以简单分析一下: 内容是从后台一次性获取到的,不存在点击“阅读更多”再去请求一次后台获取剩余数据的可能; 通过第一步其实可以得出,CSDN是通过控制...
  • 一朋友让我帮忙写个“更多内容的展开/收起”的js,不过写完后感觉不太满意。先用着吧 记录下来有待以后修改... $(document).ready(function(){ $("#clickBox").click(function(){ var is_open = ...
  • vue实现文字展开、收起 <span v-if="topgame.gameintr.length > 212" class="intr"> <span v-if="!iskai">{{ topgame.gameintr|open}}</span> <span v-else="!...
  • 微信小程序加载更多,是将之前的数据和点击加载后请求的数据用concat拼接在一起并执行setData, 下面是一个简单的栗子: index.wxml代码如下 ...加载更多按钮绑定setLoading index.js文件代码如下
  • vue控制多行文字展开收起

    万次阅读 2019-05-30 16:43:31
    这里讲一下,如何使用vue控制多行...点击“显示更多”会展开所有文案,按钮变成“收起” (未超出三行的时候) (展开) (收起) 代码实现: <template> <div> <p class="m-content overfl...
  • js实现展开和收起效果

    千次阅读 2018-11-30 11:41:47
     .body{width:100%; height:320px; margin:0 auto;... 更多更多更多更多更多更多更多更多1  更多更多更多更多更多更多更多更多2        ();" id="btn" class="btn">展开+    </div>
  • JavaScript实现的展开与收起

    千次阅读 2019-02-21 15:59:56
    开发工具与关键技术:DW ...2、展开与收起的css样式代码: @charset &amp;quot;utf-8&amp;quot;; /* CSS Document */ .content{ width: 400px; margin: 0 auto; } .box{ width: 80px; backg...
  • js实现展开全部内容,收起全部内容

    千次阅读 2020-05-08 15:29:44
    $('.more').html("查看更多"); } else { $('.more').hide(); } }); }; hide(); $('.more').click(function(){ if(more){ $(".more_h").html(content); $(this).html("收起文章"); more = false; }else{ hide(); } }...
  • 2,点击查看更多,页面请求传startpage返回第二页的内容合并到上一个数组中,页面展示20条评论,再次点击继续增加10条直到展示完毕 完成这个功能需要知道concat的用法, concat() 方法用于连接两个或多个数组。 该...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 403,444
精华内容 161,377
关键字:

展开更多