圖1
圖2
圖3
家好,今天要跟大家分享的是當鼠標滑過時”圖文動態(tài)顯示“效果的CSS實現(xiàn)方法,下面我們來看下效果圖:
相對前幾期的內容今天的教程比較簡單,主要知識點還是CSS3中關于動畫屬性的使用,從效果圖中可以看出就是一個簡單的上下移動,因此用到的還是是移動屬性translate。
該示例主要有四個主體部分,每一部又是由圖片和文字信息兩部分組成,其中文字信息中含有一個標題一段文字和一個超鏈接,因此HTML結構可如下設置:
box-sizing: border-box;主要是為了后面給文字信息部分添加樣式(如:添加邊框邊距)時父元素的尺寸不受影響。
主要設置overflow:hidden;用來隱藏向上移動時圖片溢出部分。
這里主要注意一點,圖片的position為relative而文字信息部分的position為absolute。
這里不多贅述,根據(jù)個人喜好隨便搞。
在此處需要先把文本信息部分向下移動100%的身位【translateY(100%)】配合上面的overflow:hidden實現(xiàn)隱藏,然后為圖片和文本信息部分分別添加鼠標滑過時的動態(tài)效果,分別向上移動一定的距離,最后為每個動畫都添加一個0.4秒的過渡時間transition:transform 0.4s即可。
易拖拽
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
<style>
#div1 {width:200px; height:200px; background:red; position:absolute;}
</style>
<script>
window.onload=function ()
{
var oDiv=document.getElementById('div1');
var disX=0;
var disY=0;
oDiv.onmousedown=function (ev)
{
var oEvent=ev||event;
disX=oEvent.clientX-oDiv.offsetLeft; //拖拽距離
disY=oEvent.clientY-oDiv.offsetTop; //拖拽距離
oDiv.onmousemove=function (ev)
{
var oEvent=ev||event;
oDiv.style.left=oEvent.clientX-disX+'px';
oDiv.style.top=oEvent.clientY-disY+'px';
};
oDiv.onmouseup=function ()
{
oDiv.onmousemove=null;
oDiv.onmouseup=null;
};
};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
程序問題:鼠標拖拽過快,鼠標指針與拖拽div對象脫離
解決方法:直接給document加事件(因為div對象范圍太小,鼠標移動就與拖拽div對象脫離)
將oDiv改成document對象
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
<style>
#div1 {width:200px; height:200px; background:red; position:absolute;}
</style>
<script>
window.onload=function ()
{
var oDiv=document.getElementById('div1');
var disX=0;
var disY=0;
oDiv.onmousedown=function (ev)
{
var oEvent=ev||event;
disX=oEvent.clientX-oDiv.offsetLeft;
disY=oEvent.clientY-oDiv.offsetTop;
document.onmousemove=function (ev)
{
var oEvent=ev||event;
oDiv.style.left=oEvent.clientX-disX+'px';
oDiv.style.top=oEvent.clientY-disY+'px';
};
document.onmouseup=function ()
{
document.onmousemove=null;
document.onmouseup=null;
};
};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
程序問題: FF下,空Div拖拽Bug(殘影)
解決方法: 阻止默認事件
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
<style>
#div1 {width:200px; height:200px; background:red; position:absolute;}
</style>
<script>
window.onload=function ()
{
var oDiv=document.getElementById('div1');
var disX=0;
var disY=0;
oDiv.onmousedown=function (ev)
{
var oEvent=ev||event;
disX=oEvent.clientX-oDiv.offsetLeft;
disY=oEvent.clientY-oDiv.offsetTop;
document.onmousemove=function (ev)
{
var oEvent=ev||event;
oDiv.style.left=oEvent.clientX-disX+'px';
oDiv.style.top=oEvent.clientY-disY+'px';
};
document.onmouseup=function ()
{
document.onmousemove=null;
document.onmouseup=null;
};
return false; //阻止默認事件(拖動殘影)
};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
防止拖出頁面
*請認真填寫需求信息,我們會在24小時內與您取得聯(lián)系。