用css實現 js 的點擊效果


也不知道大家平常的點擊事件都是怎寫的,我的話倒是經常使用以下這種方式

<div onclick="promptThis()">
    點擊我!!
</div>

<!--別忘了引入js-->
<script src="1.js"></script>

然后在js封裝一片代碼,命名為 promptThis

(操作、提示、或者啥的)

function promptThis() {
    alert("你點了我!")
}

結果:

 

注意:

js點擊事件在蘋果端會失效,

在安卓機上,我們隨意定義點擊事件也能夠在找到點擊的元素,但是在蘋果端上就是不行,怎么點擊都沒有效果。

這是因為在蘋果機上window禁止了手指誤點功能,必須解除這一功能,或者給點擊事件指引某個元素上綁定了事件。最好的解決方法如下:

div{
    cursor: pointer;
}

 


 

=========分割線==================


 

但是后來,在學習響應式布局的時候,

一個教學視頻徹底的刷新了我對前端的觀念,

https://www.bilibili.com/video/av9468753/?p=4 

原來,css也是可以做到用戶操作的功能的,頓悟~

在這視頻中,需要的控件有

<input id=“thisOnClick” type="checkbox">

 

原理:

在控件 <input id=“thisOnClick” type="checkbox"> 中,有這么一個偽類元素 :checked (敲黑板,重點)

當多選按鈕選中之后,會有觸發偽類元素 :checked (敲黑板,重點),取消選中之后,則會失效;

假如:當觸發偽類元素 :checked 后,修改兄弟(兄弟元素,子元素等)元素的樣式,不就成了簡單的點擊事件嘛

步驟1、

舉個例子:

html代碼如下

<input id="thisOnClick" type="checkbox">
<div>
    不稀罕js,咱用css做點擊!
</div>

css代碼如下

<style>
    #thisOnClick:checked ~div{
        background: aquamarine;
    }
</style>

結果如下:

代碼截圖:

 

 

 

步驟2、

這時候,只要在利用控件 label 綁定 id為thisOnClick的控件,html實現代碼如下

<label for="thisOnClick">
    <div>
        點擊我,則會觸發ID為thisOnClick 的checkbox控件
    </div>
</label>

<input id="thisOnClick" type="checkbox">

<div>
    不稀罕js,咱用css!
</div>

 實現效果

代碼截圖

 

發揮下想象,把 checkbox 隱藏,這不就是 點擊修改樣式 的一個操作了嘛~~

 注意哦,在一些可以編輯網頁css的網站,這個也能是實現的(比如博客園),需要自己發揮下創意~

 

案例如下:

前端
不稀罕js,咱用css!

 代碼如下:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>前端</title>

</head>
<style>
    #thisOnClick:checked ~.hiddenDiv{
        background: aquamarine;
        display: block;
    }
    .showText{
        width: 200px;
        height: 100px;
        background: aqua;
    }
    .checkbox{
        display: none;
    }
    .hiddenDiv{
        display: none;
        width: 200px;
        height: 100px;
    }
    .frame{
        border: bisque 10px solid;
    }
</style>
<body>

<div class="frame">
    <label for="thisOnClick">
        <div class="showText">
            點擊我!!!!
        </div>
    </label>
    <input id="thisOnClick" type="checkbox" class="checkbox">
    <div class="hiddenDiv">
        不稀罕js,咱用css!
    </div>
</div>

</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM