12 個實用的前端開發技巧總結

1. 利用 CSS 穿透覆蓋默認樣式

常見發生場景:假如我們需要通過 input,type="file"來上傳文件,而這個 input 的默認樣式,可以說是非常地。所以我們希望通過一張圖片,與這個 input 大小一樣,位置一致地蓋在上面。這個時候,顯然,這個時候點擊圖片,input 是不會起作用的。就是因爲 img 隔絕了 click 的穿透,而我們希望的是,這個 img 只是視覺上遮擋了 input 的樣式,但是點擊的時候還是點擊到 input。所以,只要讓 img 可穿透即可。

css 代碼如下:

img {
  pointer-events: none;
}

2. 實現自定義原生 select 控件的樣式

由於 select 移動端原生樣式很醜,但是原生彈出效果是符合我們設計的原則。直接修改 select 的樣式的時候,一個奇怪的現象出現了,在 chrome 上調試的時候,自己定義的樣式起了作用,在 Android 手機上也起了作用,但是到了 ios 手機上就不行了,典型的不兼容問題,這個時候禁用原生的樣式即可。

css 代碼如下:

select {
  -webkit-appearance: none;
}

3. 文本溢出處理

移動設備相對來說頁面較小,很多時候顯示的一些信息都需要省略部分。最常見的是單行標題溢出省略,多行詳情介紹溢出省略。現在都用框架開發了,這種建議需求建議形成一個基礎組件,方便快捷。

css 代碼如下:

//單行
.single {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
//多行
.more {
  display: -webkit-box !important;
  overflow: hidden;
  text-overflow: ellipsis;
  work-break: break-all;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; //指定行數
}

4. 開啓彈性滾動

css 代碼如下:

body {
  overflow: scroll;
  -webkit-overflow-scrolling: touch;
}

注意:Android 不支持原生的彈性滾動,但可以藉助第三方庫 iScroll 來實現。

5. 一像素邊框設置

很多時候,想保持邊框的大小在任何設置上都是 1px,但是因爲 1px 使用 2dp 渲染,也就是說會顯示爲 2px 大小。所以,要採用 css3 縮放一下。

css 代碼如下:

.folder li {
  position: relative;
  padding: 5px;
}
.folder li + li:before {
  position: absolute;
  top: -1px;
  left: 0;
  content: " ";
  width: 100%;
  height: 1px;
  border-top: 1px solid #ccc;
  -webkit-transform: scaleY(0.5);
}

6. 防止鼠標選中事件

<div class="mask" onselectstart="return false"></div>
<div class="link">
  <a href="javascrip;;">登錄</a>
</div>

給元素添加了onslectstart="return false",就可以防止鼠標選中事件。

7. 給動態添加的元素綁定事件

利用事件代理達到這個效果即可。如:

$(document).on("click", ".large", slide); //jq中的寫法
//第一個參數表示的是對應事件,第二個是需要綁定事件的元素的id或class,第三個是綁定的對應的事件函數名

8. 兼容 IE 瀏覽器的透明度處理

.ui {
  width: 100%;
  height: 100%;
  opacity: 0.4;
  filter: Alpha(opacity=40); //兼容IE瀏覽器的處理
}

9. 常用的全屏居中 JS 函數

//獲取元素
function getElement(ele) {
  return document.getElementById(ele);
}
//自動居中函數
function autoCenter(el) {
  var bodyX = document.documentElement.offsetWidth || document.body.offsetWidth;
  var bodyY =
    document.documentElement.offsetHeight || document.body.offsetHeight;

  var elementX = el.offsetWidth;
  var elementY = el.offsetHeight;

  el.style.left = (bodyX - elementX) / 2 + "px";
  el.style.top = (bodyY - elementY) / 2 + "px";
}

10. 常用的全屏居中 CSS 函數

body {
  height: 100vh;
  text-align: center;
  line-height: 100vh;
}

11. 在輸入框輸入完內容並按回車的時候進行判斷

比如說輸入完 11000 在按下回車的時候。

<input type="textbox" id="textbox1" onkeypress="CheckInfo" />

    <script language="javascript" type="text/javascript">
    function CheckInfo()
    {
    if (event.keyCode==13) {
          alert(textbox1.text);
       }
    }
    </script>

12. chrome 調試快捷鍵

① ctrl+shift+f 全文查找

② ctrl+o 查找文件名

③ ctrl+shift+o 查找 js 函數名

推薦閱讀:

測試了12款Markdown編輯器,推薦一個最好用的!

接私活必備的 10 個開源項目,不用自己親自造輪子

神器推薦!這幾款 Windows 軟件,非常實用!

我和大佬之間差一個JS工具函數大全...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章