作者: admin

  • 基于jquery写一个swiper手机轮播滑块插件

    pc 手机 pc 轮播 事件 touch

    demo

    链接: https://pan.baidu.com/s/1oNZkIb821rxO42c0VHQEBg 提取码: 42kg

    html布局

    真正滑动的只有红色区域。

     

     

     

    js事件

    pc需要

    mousedown 鼠标按下事件
    mousemove 鼠标移动事件
    mouseup 鼠标抬起事件

     

    移动端需要

    touchstart / touchmove / touchend

     

     

    js获取坐标

    JQuery写法:

    $('#id').on('touchstart',function(e) {
      var _touch = e.originalEvent.targetTouches[0];
      var _x= _touch.pageX;
    });
    
    $('#id').on('touchmove',function(e) {
      var _touch = e.originalEvent.targetTouches[0];
      var _x= _touch.pageX;
    });
    
    $('#id').on('touchend',function(e) {
      var _touch = e.originalEvent.changedTouches[0];
      var _x= _touch.pageX;
    }

     

     

    原生写法:

    document.getElementById("id").addEventListener("touchstart",function(e)
    {
      var _x=e.touches[0].pageX;
      var _y=e.touches[0].pageY;
      console.log("start",_x)
    })
    document.getElementById("id").addEventListener("touchmove",function(e)
    {
      var _x=e.touches[0].pageX;
      var _y=e.touches[0].pageY;
      console.log("move",_x)
    })
    document.getElementById("id").addEventListener("touchend",function(e)
    {
      var _x=e.changedTouches[0].pageX;
      var _y=e.changedTouches[0].pageY;
      console.log("end",_x)
    })

     

     

    参考文章:https://blog.csdn.net/zfzhuman123/article/details/90520355

  • git多账号时SSH keys共存以及配置

    如果同时在github、gitlab、gerrit等等都有项目都要上传时,我们就要考虑ssh key的配置问题了。

    如果时window要安装以下

    链接: https://pan.baidu.com/s/1scXn9TyEHU_vIeLJpoO1Jw 提取码: ty5f

     

    1,配置

    例如github我们是最常用的,如果不止一个也无所谓,就先将一个设置为全局配置如:

    $ git config --global user.name "用户名"
    $ git config --global user.email "邮箱"

     

    其次其他的设置为局部配置例如gerrit,进入到项目根目录下执行:(其他局部设置都同样操作)

    git config user.name "用户名"
    git config user.email "邮箱"

     

     

    2,生成公钥
    (1)github

    ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C"邮箱"

     

    (2)gerrit

    ssh-keygen -t rsa -f ~/.ssh/id_rsa.gerrit -C"邮箱"

    命令执行完成后,这时~/.ssh目录下会多出id_rsa.github.pub和id_rsa.gerrit.pub文件就是给github和gitlab使用的公钥。

    打开查看pub后缀的文件,全选将乱码复制到如下图:

    很多网站类同

     

     

    3,配置config文件

    通过touch ~/.ssh/config命令创建config文件,修改文件内容如下:

    #
    # 不鸽项目移到gerrit
    #
    Host 134.175.81.207
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.gerrit
    User chenge
    
    
    #
    # github
    #
    Host github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.github
    User chen77134056
    配置完成以后,github的仓库会使用~/.ssh/id_rsa_github密钥进行验证,gerrit会使用~/.ssh/id_rsa_gerrit密钥进行验证。

     

    4,代码拉取,上传案例

    //初始化一个空白仓库
    git init 
    
    //给本地仓库设置一个远程上传、下载地址值是git@xxx.git,赋值到一个变量名为origin,(默认都是origin不推荐乱取名)
    git remote add origin git@gitee.com:chen77134056/vuelic3.git  
    
    //通过设置好的远程仓库,下载远程仓库的内容,但是这个命令不会帮我们合并代码
    git fetch
    
    //将本地分支master与远程仓库分支关联到一起,这样才能git push(推荐本地分支取名和远程分支取名一样)
    git branch master origin/master
    
    //现在切换master分支
    git checkout master
    
    //下载远程仓库的内容,会把我们自己代码和远程代码合并在一起
    git pull

     

  • ios app内嵌h5出现滚动条卡顿或者不滚动

    ios 苹果 滚动 弹簧

    安卓不会出现这种问题。

    -webkit-overflow-scrolling:touch是什么?

    -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果.
    auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。
    touch: 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。

    效果就像ios出现滚动条时,拉到上、下最底时有弹簧效果

     

     

    2. 解决safari布局抖动的例子

    想实现一个布局为header、main、bottom的布局,其中头部和底部通过fixed固定,中间部分通过滚动条滑动。

    如果目的是实现只要中间的内容超过屏幕高度时,中间内容会自动滚动的效果的话,main部分加上上下的padding,然后不需要自己添加任何滚动条属性,当超出高度时,body会自动产生滚动条。这样我们的目的其实是实现了的。

    但是在safari上,当超出高度,页面往下滑时,浏览器底部的工具栏会随着页面一起晃动(向下滚动时会拉起底部工具栏),造成了很不好的体验。所以我们想在中间的main部分加一个独立的滚动条。

     

    方案

    中间的main不设定位,高度100%,再padding头部和尾部,

    其中头部和底部的定位设为absolute会比设为fixed体验更好(况且fix布局在移动端本来就有各种各样的问题,还是尽量避开:) )。

    大致代码如下,仍是 overflow-y 和-webkit-overflow-scrolling,重点在于中间部分依照文本流布局。

    html, body {
       height: 100%;
    }
    main {
          padding: 50px 0;
          height: 100%;
          overflow-y: scroll;
          -webkit-overflow-scrolling: touch;
    }

    不过不推荐这个fixed方案,因为页面偶尔卡住不动,下面说到了这个问题。

     

     

     

    3. 探究-webkit-overflow-scrolling:touch偶尔卡住或不能滑动的bug

    -webkit-overflow-scrolling:touch这个属性真的是各种坑,我研究这个属性已经大半年了,还没有发现能够在safari上完美使用无bug的例子。

    最常见的例子就是,
    
    在safari上,使用了-webkit-overflow-scrolling:touch之后,页面偶尔会卡住不动。
    在safari上,点击其他区域,再在滚动区域滑动,滚动条无法滚动的bug。
    通过动态添加内容撑开容器,结果根本不能滑动的bug。

    在网上也看到了一些人在问这个问题,不过不多,国外倒是讨论的更多一点,描述如下。

    偶尔卡住的问题,解决方案网上众说纷纭,遇到了很多相同的说法,比如如果卡住不动的话,就加一个z-index,就能解决该问题的说法。

    在试了很多次之后,这种说法没有一次解决过这个问题。这个说法能够传播出来,可能是使用者当时在使用的时候遇到了-webkit-overflow-scrolling:touch点透或者层级的问题。所以该方案不具有适用性。

    所以这个东西真的让我很苦恼了很久,以致于那段时间所有的滚动条不是通过body自己滚动,就是使用iScroll这样的库,繁琐地让我几乎想要放弃移动web,拥抱hybrid,不过在stackoverflow潜水了很久之后,总结了以下几种解决方案:

     

    3.1 保证使用了该属性的元素上没有设置定位

    如果出现偶尔卡住不动的情况,那么在容器上设置

    position: static

    这样会解决部分因为定位(relative、fixed、absolute)导致的页面偶尔不能滚动的bug。但是还会有卡住问题~~~~~。

    但是滑动到顶部继续手指往下滑,或者到底部继续往上滑,还是会触发卡住的问题(其实是整个页面上下回弹),说他算bug,其实就是ios8以上的特性,如果滚动区域大一点,用户不会觉得这是bug,如果小了,用户会不知道发生了什么而卡住了。
    视频在这,有梯子的同学可以看一看https://www.youtube.com/watch?v=MkAVYbO_joo。

     

    3.2 如果添加动态内容页面不能滚动,让子元素height+1

    如果在-webkit-overflow-scrolling:touch属性的元素上,想通过动态添加内容来撑开容器,触发滚动,是有bug 的,页面是会卡住不动的。

    国内没有人讨论这个问题,国外倒是很多,例如下面的描述:

    收集了很多资料,用了之后,下面的方法真正的解决了我的问题,真是直呼神奇,方案如下图:

     

    图一:

     

     

    图二:

    方法就是在webkit-overflow-scrolling:touch属性的下一层子元素上,将height加1%或1px。从而主动触发scrollbar。

    main-inner {
      min-height: calc(100% + 1px)
    }

    你也可以直接加伪元素上:

    main:after {
      min-height: calc(100% + 1px)
    }

    这个方案不得不说真的好用。。

    当然还有其他方案,不过要写js或者jq了,麻烦。

    直接上iScroll或者better-scroll吧,我觉得better-scroll还是挺好用的

    better-scroll下载

    https://blog.csdn.net/weixin_30731305/article/details/98241191

    本地下载:iscroll-master

     

     

    使用上的一些坑:

    html元素不能使用display:none隐藏元素,只能使用visibility: hidden

    配合vue的话js,要延迟加载如:

    setTimeout(function () {  
      new IScroll('#scroll-wrap',{  //推荐这种写法,不然iphone11滚动区域不能点击
        click:true, //调用判断函数
        scrollbars: true,//有滚动条
        mouseWheel: true,//允许滑轮滚动
        fadeScrollbars: true//滚动时显示滚动条,默认影藏,并且是淡出淡入效果
     });
    },300)

     

    如果还出现点击区域无效试试以下方法:

    myScroll = new IScroll("#ID", {
        click:iScrollClick(), //调用判断函数
            scrollbars: true,//有滚动条
            mouseWheel: true,//允许滑轮滚动
            fadeScrollbars: true//滚动时显示滚动条,默认影藏,并且是淡出淡入效果
        });
    function iScrollClick(){
        if (/iPhone|iPad|iPod|Macintosh/i.test(navigator.userAgent)) return false;
        if (/Chrome/i.test(navigator.userAgent)) return (/Android/i.test(navigator.userAgent));
        if (/Silk/i.test(navigator.userAgent)) return false;
        if (/Android/i.test(navigator.userAgent)) {
           var s=navigator.userAgent.substr(navigator.userAgent.indexOf('Android')+8,3);
           return parseFloat(s[0]+s[3]) < 44 ? false : true
        }
    }

    文章来源:https://www.cnblogs.com/chaser-li/p/7418678.html

     

     

  • 解决:不能初始化photoshop因为暂存盘已满

    原因是c盘的磁盘空间不够了。

    再次双击打开Photoshop.exe的同时不停的按ctrl+alt,唤起暂存盘首选项设置界面;

    设置其他盘即可。

     

    链接:https://pan.baidu.com/s/1tNWnX6GdCaP8yVA41CTTpg
    提取码:zii7

     

    破解方法:先执行根目录的Set-up.exe安装,之后将解压包的Photoshop.exe覆盖到安装的根目录下

     

     

  • html5加载svga

     

    <script src="https://cdn.jsdelivr.net/npm/svgaplayerweb@2.3.0/build/svga.min.js"></script>

     

    html:

    <div id="canvas"></div>

     

    js:

    <script>
    var player =new SVGA.Player('#canvas');
    var parser =new SVGA.Parser('#canvas');
    parser.load('./images/box.svga', function(videoItem) {
      player.setVideoItem(videoItem);
      player.startAnimation();
    })
    </script>

     

    http://svga.io/integrated.html