美文网首页
前端小技巧

前端小技巧

作者: Dannn_Y | 来源:发表于2017-02-07 12:55 被阅读51次

    作为前端新手,总结了一下自己在做项目中,遇到了问题,在这里记录一下解决办法。

    计算文字的高度,展开收起

    • 在工作中经常遇到这类的需求,需要计算文字的高度,当达到几行之后就显示展开收起的按钮,供文字展开收起。在未达到的时候不显示此按钮。
      思路在有数据的时候先计算文字的高度,如果超过设置的高度显示展开收起的按钮,没有就不显示展开收起的按钮.
    <template>
    <div class="des-bd">
              <div class="prd-info">
                <h5>{{ $t("message.productionInfo") }}</h5>
                <div class="more-desc" v-show="showMoreDesc" @click="moreDesc">
                  <li class="pull-icon"></li>
                </div>
              </div>
              <div class="text-des">
                 <pre class="des-ele" v-html="dealDes(prdInfo.description)"></pre>
              </div>
            </div>
    </template>
    <script>
    dealDes (html) {
            // 设定产品高度为 100rem
            const rem = parseFloat($('html').css('font-size'))
            const minHeight = 100 / 75 * rem
            const ele = $('.des-ele').clone()
            const eleContainer = $('.text-des')
    
            ele.html(html)
            ele.css({
              position: 'absolute',
              top: 0,
              left: 0,
              opacity: 0
            })
    
            eleContainer.append(ele)
            const desEleHeight = ele.height() // rem2px
            ele.remove()
    
            if (desEleHeight > minHeight) {
              eleContainer.addClass('hide')
              this.showMoreDesc = true
            }
    
            return html
          }
          
    moreDesc () {
            $('.text-des').toggleClass('hide')
            $('.pull-icon').toggleClass('transform-pull')
          }
    </script>
    

    当键盘弹出时让input标签事情焦点

    • 让input失去焦点,收起键盘,在前面要填写失去焦点的名称
      括号中填写的是包住input标签的div class,将input 也写上
     $('.recomd-man input').blur()
    

    添加单元格选中的颜色

    • 一个页面有多个单元格cell,需要在点击某个cell的时候添加背景选中颜色,表明选中的是这个单元格, 在点击此cell的时候用jQuery添加样式。
     $('.subscribe-list').removeClass('active')
     $('.subscribe-list').eq(val).addClass('active')
    

    返回浏览器上一个页面

    • 浏览器窗口有一个history对象,用来保存浏览历史
      如果当前窗口访问了三个网址,那么history对象就包括三项,history.length属性等于3,
      history.length // 3
      history 对象提供了一系列方法,允许在浏览历史之间移动

    back():移动到上一个访问页面,等同于浏览器后退键。
    forward():移动到下一个访问页面,等同于浏览器的前进键。
    go():接受一个整数作为参数,移动到该整数指定的页面,比如go(1)相当于forward(),go(-1)相当于back(),go(0)相当于刷新当前页面,如果需要刷新当前页面可以这样写:

    history.go(0)
    

    禁止遮罩视图下面的视图滚动

    • 当需要加载列表页的时候,上方弹出模态窗,有遮罩视图,这时候需要将后面的列表禁止滑动,在网上搜了好多方法都是给body 或 html 添加overflow:hidden,来禁止滑动,用这种方法在web上调试的是正常的,但放到手机上并没有效果。遇到这种情况可以使用下面的这种方法,在手机上有效,但是在浏览器上调试就没有效果,正好可以解决问题。
      在要弹出的模态窗组件中添加如下方法。
    // 首先定义一个变量函数
    const bodyScroll = (event) => {
        event.preventDefault()
     }
     // 在视图要弹出的时候,执行如下方法
     document.addEventListener('touchmove', bodyScroll, false)
     // 这样背景视图cell就不能滑动了,当视图消失的时候我们还是需要底部视图cell列表滚动,这就需要执行如下方法,将此事件移除掉。
     document.removeEventListener('touchmove', bodyScroll, false)
    

    相关文章

      网友评论

          本文标题:前端小技巧

          本文链接:https://www.haomeiwen.com/subject/bmcouttx.html