zoukankan      html  css  js  c++  java
  • 一个项目一篇随笔之淘宝口令复制H5网页开发

    关键词:微擎  人人商城V3  复制到剪贴板  分组循环

    1.php分组方法 这个方法可以把整体数组按照关键词字段来分开 sql不会写的用这个还是很合适的

        /**
         * @param array $dataArr 需要分组的数组
         * @param $keyStr string  分组关键字段
         * @return array
         */
        public function dataGroup(array $dataArr,$keyStr)
        {
            $newArr = [];
            foreach ($dataArr as $k => $val) {
                $newArr[$val[$keyStr]][] = $val;
            }
            return $newArr;
        }

    因为是结合微擎的人人商城,数组分好了之后在前端用loop循环

    {loop $list $index $item}
        循环数据
    {/loop}

    这个loop我嵌套了两层,没有啥问题,$index打印出来就是索引,感觉跟foreach($list as $k=>$v)是一个意思

    2.复制内容

    百度了一大堆,最后用了textarea,给需要点击复制的代码给onclick到指定方法,因为我是循环嵌套的,所以需要有个参数,方法如下

        function getCode(id){
            var copyinput = document.getElementById("koulingContent"+id);
            console.log(copyinput);
            copyinput.select();
            document.execCommand("Copy")
            console.log('复制');
            showMB();
        }

    但是在移动端相当于选中了文本框的所有文字,手机键盘会弹出来,所以需要给textarea添加一个readonly属性,代表只读

    <textarea  readonly="readonly" style="opacity: 0; 1px;height: 1px;" id="koulingContent{$i['id']}">需要复制的内容</textarea>

    千万不能给display:none的style,否则复制不会成功,网上说宽高不能为0;所以我象征性地给个地方让他透明吧(好没有存在感嘤嘤嘤~)

    后端没有什么难度,因为是公司接的项目,直接就用微擎的人人商城搭建好了,但是讲道理,如果我用tp5直接开的话可能

    这篇先到这里,下一篇我记录一下初接触微擎的心得。




    分割线



    emmmm,这个方法似乎有些手机不兼容,复制不了,有个clipboard.js可以完美兼容

    开头引用3个文件

        <script src="https://cdn.jsdelivr.net/npm/vue"></script>
        <script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>

    中间做个循环

            <ul >
                <li v-for="(item,index) in topList" key="index">
                    <div class="thumb">
                        <img v-bind:src=item.img alt="">
                    </div>
                    <div class="info">
                        <div class="name"><span class="save">立省<i>{{item.save}}</i></span>{{item.title}}</div>
                        <div class="hot">{{item.hot}}</div>
                        <div class="tag"><span>{{item.tag}}</span>仅限{{item.stock}}件</div>
                        <div class="price"><i></i>{{item.price}}   <span>券后价</span> <button class="copy-btn" v-bind:data-clipboard-text="item.code">立即领券</button></div>
                    </div>
                    <div class="clear"></div>
                </li>
            </ul>

    结尾js走一遍

        clipboard.on('success', function(e) {
            layer.open({
                skin: 'redskin' //只对该层采用myskin皮肤
                ,title: false
                ,content: "恭喜,口令复制成功<br>请打开<font color='yellow'>手机陶宝</font>查看"
            });
            
        e.clearSelection();
        });

    貌似是用了vue的组件,久了不看也不记得了,姑且记下来先

    技术最菜,头发最少
  • 相关阅读:
    leetcode刷题笔记 273题 整数转换英文表示
    leetcode刷题笔记 278题 第一个错误的版本
    leetcode刷题笔记 268题 丢失的数字
    leetcode刷题笔记 264题 丑数 II
    leetcode刷题笔记 263题 丑数
    20210130日报
    20210129日报
    20210128日报
    20210127日报
    20210126日报
  • 原文地址:https://www.cnblogs.com/gushengyan/p/11903605.html
Copyright © 2011-2022 走看看