cssjs彈出框實例(js中的彈出框)

本文目錄一覽:

HTML+CSS+JS實現點擊超鏈接彈出文本框效果

出現這個問題,首先需要搞明白彈出框是只有一個,還是每個申請加入旁邊都有一個。

如果是第二種情況,那就來說說絕對定位是如何進行定位的。

我們的說法是絕對定位,但其實是相對的,它需要一個相對基準點,來進行定位。如果絕對定位的父標籤設置了屬性position: relative;,那這個父標籤就是它的基準點,相對於這個父標籤的偏移量來絕對定位。如果所有的父標籤都沒有設置那個屬性,那就不好辦了,它會跑到最上面去,以body進行定位。明白了這個就好辦了,給彈出框的父標籤加上屬性position: relative,再調整一下偏移量(就是left或right,top或bottom的值)就可以了。

為什麼先說第二種情況呢?因為第一種情況比較麻煩,而且也要知道絕對定位是如何進行定位的才行。需要用JS判斷點擊的申請加入是哪一個,根據點擊的這個按鈕的位置來計算偏移量,再進行定位。

寫了這麼多字累了,才發現沒有懸賞分。

js+css做出彈出框

script type=”text/javascript”

var intd;

function getCount() {

$.ajax({

url: “GetMessageCount.ashx?rnd=” + Math.random(),

type: “Post”,

dataType: “text”,

success: function (data) {

if (data != “0”) {

clearInterval(intd)

vart=setTimeout(“alert(‘有數據!’)”,5000)

}

}

// error: function () { alert(“O No~~~”); }

});

}

intd=setInterval(getCount, 5000);

/script

如何用JS和CSS3製作炫酷的彈窗效果

首先回憶一下彈窗的實現,一般我們分為兩層,彈出窗口層(popus)和遮罩層(mask),通常情況下我習慣就這兩元素全部設成fixed定位,具體和absolute區別一試便知。對於mask層自不用多少,我們如下給他設置屬性,讓他鋪滿整個屏幕。

.mask{position:fixed;top:0px;bottom:0px;left:0px;right:0px;background-color:#000;opacity:0.6;filter:alpha(opacity=60)}

popus層則要稍微麻煩點兒,這裡我們有兩種實現方法

1.已知大小的彈窗,如下,主要通過top,left與負的margin來實現。

.popus{width:300px;height:200px;position:fixed;left:50%;top:50%;margin-left:-150px;margin-top:-100px;background-color:#000}

2.未知彈窗大小,則通過js獲取彈窗層的width與height,然後在進行如上設置,在此不多述。

3.在支持css3的情況下,我們不需要知道彈窗的寬高,便可進行如下設置

.popus{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%)}

主要通過translate屬性來設置,偏移的值百分比是相對於本身的寬高,因此從原理上來說跟第一種寫法有異曲同工之妙,不過使用卻更方便。

言歸正傳,下面我們回歸到正題,即讓元素實現ps中高斯模糊的效果。

這裡引出一個css屬性:filter,注意這裡的filter並不是ie中的filter,filter有很多值,感興趣的可以點擊這裡,作者講的非常詳細。我們今天只講其中的一個blur,首先看下面的預覽圖

ps:目前來說該屬性只支持webkit瀏覽器,所以我們直接使用了css3屬性,效果也需要在webkit瀏覽器中查看

是不是很神奇,其中起作用的代碼就這一行 -webkit-filter:blur(8px) ,後面的像素值即代表模糊程度,當然在日常項目中,我們還可以加一些動畫,使頁面更加的生動,本案例完整代碼如下:

div class=’bg’

img src=’bg.jpg’ /

/div

div class=’popus’

效果是不是要好過純色加透明呢

div

div class=’left btn ‘確實不錯/div

div class=’right btn’也就那樣/div

/div

/div

css:

*{padding:0px;margin:0px}

img{width:100%;margin:0px auto;display:block}

.bg.blur{-webkit-filter:blur(8px)}

.popus{width:400px;color:#000;;position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);font-family:”微軟雅黑”;padding:20px 0px;font-weight:bold;background-color:rgba(255,255,255,0.6);border-radius:18px;text-align:center;padding:30px 0px;box-shadow:0px 0px 10px rgba(0,0,0,0.4);display:none}

.popus div{width:220px;margin:10px auto}

.popus div.btn{width:80px;padding:5px 10px;color:#000}

.left{float:left;border:1px solid #000}

.popus div.btn.right{float:right;color:#666}

js:

$(‘.bg’).on(‘click’,function(){

console.log(98)

$(this).addClass(‘blur’);

$(‘.popus’).show();

})

$(‘.btn’).on(‘click’,function(){

$(‘.bg’).removeClass(‘blur’);

$(‘.popus’).hide();

})

這樣是不是就完了?很明顯不是,看控制台

當我們彈出窗口外,肯定要禁止掉我們其他層的點擊事件,但是我們發現目前我們雖然將其他層模糊化了,但是並沒有禁止掉相應的事件,當然解決辦法也很簡單,我們可以加一層沒有背景顏色的遮罩層,覆蓋在頁面上,這樣我們每次點擊作用在遮罩層上,自然不會觸發底層的事件了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/275846.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-17 16:06
下一篇 2024-12-17 16:06

相關推薦

發表回復

登錄後才能評論